我得到了这段代码,要求用户提供限制,然后打印出小于或等于所提供限制的平方数序列。
tidyr
这是我当前的代码,它的工作原理如下:
n=int(input("Limit: "))
counter = 2
while counter <= n:
a = counter*counter
counter=a
print(a)
我被卡住了,如何解决?谢谢!
答案 0 :(得分:0)
您实际上并不是在计算连续的平方。您应该找到counter
的平方,然后将counter
加1
n=int(input("Limit: "))
counter = 1
sq = counter**2
while sq <= n:
print(sq)
counter += 1
sq = counter**2
有趣的itertools解决方案:
from itertools import accumulate, count, takewhile
for i in takewhile(n.__gt__, accumulate(count(1, 2))):
print(i)
答案 1 :(得分:0)
首先,您需要将counter
变量从1开始,否则将无法获得平方值“ 1”。
关于打印其余值,您将需要做三件事:
将计数器递增1,将允许您检查可能存在的,低于指定限制的每个平方。以下代码提供了一种与上述伪代码匹配的简单方法:
n=int(input("Limit: "))
counter = 1
while counter <= n:
if counter * counter <= n:
print(counter * counter)
counter += 1
如果您有任何疑问,请告诉我,我们很高兴澄清所有仍然没有意义的内容!