我应该弄清楚需要如何循环迭代
示例:
0001-> 0000-> 0000-经过2次迭代后开始循环;
4100-> 8100-> 6100-> 2100-> 4100-经过4次迭代后进入循环
我的代码:
n = int(input())
a = list(input().split())
for i in a:
i = int(i)
k = 1
d = i
i = i**2 // 100 % 10000
while d != i:
i = i**2 // 100 % 10000
k = k + 1
print(k, end = ' ')
有一个超出时间限制。我该如何解决?
答案 0 :(得分:0)
我很确定您没有正确地告诉计算机回头看“ d == 1”。为了正确地做到这一点,您需要在while循环的末尾添加一个continue语句。因此,您的代码将更像这样:
n = int(input())
a = list(input().split())
for i in a:
i = int(i)
k = 1
d = i
i = i**2 // 100 % 10000
while d != i:
i = i**2 // 100 % 10000
k = k + 1
continue
print(k, end = ' ')