智一面的面试题提供python的测试题
使用地址:http://www.gtalent.cn/exam/interview?token=906315a76b5c14231889351088713f76
题目:输出三角形图案
打印出如下图案(菱形):中间*数量分别是1、3、5、7、9,层数由键盘输入 比如输入5 产生如下图形
解法1 常规思维
程序分析
1、我们可以看到每一层的星星数量是层数的2被+1
2、同时我们也可以计算出每一层对应的空格数是总层数-层数-1
代码编写
n = int(input("输入要显示的层数:"))
for i in range(n):
print(' ' * (n - i-1), end="")
for j in range(2 * i+1):
print('*', end="")
print()
for i in range(n-1):
print(' ' * (i+1), end="")
for j in range(2*(n-(i+1))-1):
print('*', end="")
print()
运行结果
解法2 stdout类
程序分析和上面类似
代码编写
from sys import stdout
n = int(input("输入要显示的层数:"))
for i in range(n):
for j in range(n-i-1):
stdout.write(' ')
for k in range(2 * i + 1):
stdout.write('*')
print('')
for i in range(n-1):
for j in range(i+1):
stdout.write(' ')
for k in range(2*(n-(i+1))-1):
stdout.write('*')
print('')
运行结果
解法3 最简单
通过字符串相乘
代码编写
n = int(input("输入要显示的层数:"))
for i in range(n):
print((n-i-1)*' '+(2*i+1)*'*')
for j in range(n-1):
print((j+1)*' '+(2*(n-(j+1))-1)*'*')
运行结果
还有更多其他的解法,欢迎一起交流学习
————————————————我们的python技术交流群:941108876
智一面的面试题提供python的测试题
使用地址“http://www.gtalent.cn/exam/interview?token=8a33fabdc405d59c90ffca2496195543