Python 3 - Squares。代码几乎完成

时间:2013-02-19 14:52:29

标签: python python-3.x

我被要求编写一个打印小于一个输入的所有方数的程序。但是,在这段代码中有一个非常小的问题,我似乎无法确定:

from math import sqrt
n=int(input())
counter = 0
while counter * counter < n:
   counter = counter + 1
   print(counter * counter)

看,问题是,它打印所有正确的方块,但也输出了输入的方块。 有人可以告诉我如何解决这个问题吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

只需将增量向下移动一行并从1开始计数:

n=int(input())
counter = 1
while counter * counter < n:
   print(counter * counter)
   counter += 1

在代码counter中,n进行测试后增加,但在打印广场之前。因此,即使counter * counter小于n,也不一定是(counter + 1) * (counter + 1)

通过向下移动增量,您正在打印counter * counter,即刚刚针对n测试的值。