PTA打印沙漏 测试提示格式错误的原因及正确代码(python3)

“打印沙漏”题目如下:

题目要求

我的代码如下:

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(只输出一行符号)测试结果正确,多几

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值