如何避免超过“ while”的时间限制? (蟒蛇)

时间:2020-03-24 13:20:39

标签: python math while-loop

我应该弄清楚需要如何循环迭代

示例:

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 = ' ')

有一个超出时间限制。我该如何解决?

1 个答案:

答案 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 = ' ')