1. 程式人生 > >Python練習:快樂的數字

Python練習:快樂的數字

習題:快樂的數字

平臺:Python123.io

教師:嵩天


描述
編寫一個演算法來確定一個數字是否“快樂”。 快樂的數字按照如下方式確定:從一個正整數開始,用其每位數的平方之和取代該數,並重復這個過程,直到最後數字要麼收斂等於1且一直等於1,要麼將無休止地迴圈下去且最終不會收斂等於1。能夠最終收斂等於1的數就是快樂的數字。

例如: 19 就是一個快樂的數字,計算過程如下:

12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
當輸入時快樂的數字時,輸出True,否則輸出False。

此題隱含條件:任何正整數按照題目方式一直計算每位數平方和,最後一定會收斂於1或進入一個“迴圈”。

var = 1
while var == 1:                 #製作一個迴圈,可以反覆輸入數字來判斷是不是“快樂的數”

    a = input()                 #輸入一個正整數

    while (a != 1 and a != 4):  #當a不等於1或者4時,一直計算平方和
        num = list(str(a))      #讀取輸入數字的每位數製成列表
        a = 0                   #初始化a,用於計算每位平方和。此時a值已儲存在num裡,無需擔心丟失。
        for i in num:           #遍歷num列表中所有數值,計算出每位數平方和
            a = a + int(i)**2
        print(a)                #打印出當次計算的平方和
    if(a == 1):                 #當a等於1時,判斷為“快樂的數字”,列印“True”
        print('True')
    else:                       #當a不等於1時,列印“False”(其實不是1就是4)
        print('False')