“打印沙漏”题目如下:
我的代码如下:
n,symbol = input().split()
n = eval(n)
totalline = 0 #一半沙漏的总行数
symboluse = 0 #使用的符号的总个数
while symboluse <= n: #计算最多能使用几个符号
totalline += 1
symboluse = (totalline**2)*2 - 1
totalline -= 1
symboluse = 2*pow(totalline,2)-1
width = 2*totalline - 1 #第一行和最后一行的符号个数(即沙漏的宽度)
widthh1 = width #打印上面一半沙漏的辅助变量
#print Half 1
for i in range(totalline):
print("{:^{:}}".format(widthh1*symbol,width))
widthh1 -= 2
#print Half 2
for i in range(totalline-1):
print("{:^{:}}".format((2*i+3)*symbol,width))
print(n-symboluse, end='')
然而测试的结果却提示部分格式错误了:
一开始感觉奇了个大怪了。。。中间两个测试点正确,两边的格式错误?百思不得其解
然后突然想到,最小N(只输出一行符号)测试结果正确,多几