我想询问用户输入数字n,然后打印小于n的所有正方形。例如,如果n = 100,我希望它打印0,1,4,9,16,25,36,49,64,81。
我做了以下事情:
n = float(input("Please enter a positive number: "))
square = 0.0
while square < n:
square = square + 1
print(square * square)
但是如果我执行它,然后输入n = 100,这会打印所有方格,最多1000个。我在这里做错了什么?
答案 0 :(得分:2)
您正在从0循环到n
,然后打印该数字的正方形。 100 * 100是10000。
重命名square
变量;它没有准确反映你在计算的数量,它是 root ,而不是平方值。实际上,它只是直接计数器,每步增加1。然后测试计数器的平方是否小于n
:
root = 0.0
while root * root < n:
root = root + 1
print(root * root)
如果你必须存储方块,请实际存储方块,而不是根:
root = square = 0.0
while square < n:
root = root + 1
square = root * root
print(square)
接下来,如果你希望81是最后打印的数字,那么在 print()
之后移动增量:
root = 0.0
while root * root < n:
print(root * root)
root = root + 1
这可以确保您打印刚刚测试过的数字的平方,而不是 next root。
答案 1 :(得分:-2)
如果您正在寻找简单的代码,则可以使用此-------- >>
n = int(input())
for i in range(0,n):
print(i*i)
我认为这很简单.....