首页 > 解决方案 > 问题:从范围 (1,1000) 中找到数字的数字的迭代平方和为 1 的数字

问题描述

for value in range(0,1000):
   def digisum(value):
       x= sum(int(c) ** 2 for c in str(value))
   def iteration(value):
       if x in [0,1]:
           print (value)
       else:
           iteration(digisum(x))

我收到一个错误,因为“超出了最大递归密度”

标签: python-3.x

解决方案


for value in range(1+1,1000):
    if sum(int(c)**2 for c in str(value)) == 1:
        print(value)

由于范围是独占的,因此省略了 1 和 1000。输出和正确答案是 10 和 100。


推荐阅读