gsjdkdhh 2022-04-19 16:33 采纳率: 96.3%
浏览 472
已结题

python平方和数字链

将一个正整数所有数字的平方相加可得到一个新的数,不断重复这个过程直到新的数已 经在之前出现过,这样构成了一条数字链。 例如:

1->1

89->145->42->20->4->16->37->58->89

理论上证明了从任一正整数开始,平方和数字链最终都会到达1或89,因此寻找某正整数的平方和数字链到1或89即可。

自定义函数numsChain(num),寻找从num到1或89的平方和数字链中的所有数并将结果返回。主模块中从键盘输入一个数字字符串(正整数),调用numsChain()函数寻找并输出完整的平方和数字链。

输入
一个数值型数据
输出
数字链
样例输入
23
样例输出
23->13->10->1

  • 写回答

2条回答 默认 最新

  • Py小郑 Python领域潜力新星 2022-04-19 16:56
    关注

    img

    
    
    
    n=int(input())
    
    def f(x):
        a=0
        for i in str(x):
            a+=int(i)**2
        return a
    def numsChain(n):
        t=[n]
        while t[-1]!=89 and  t[-1]!=1:
            t.append(f(t[-1]))
        for i in range(len(t)-1):
            print(t[i],end='->')
        print(t[-1])
    numsChain(n)
    
    

    你的采纳对我很有帮助!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月19日