前幾天,學完python的數值類型以後,老師留了幾道練習題,裏面就有三位水仙花數的計算這道題。雖然難度不大,但的確頗有趣。下面是對於這道題個人答案,答案已經過驗證。python
三位水仙花數的計算app
「3位水仙花數」是指一個三位整數,其各位數字的3次方和等於該數自己。例如:ABC是一個「3位水仙花數」,則:A的3次方+B的3次方+C的3次方 = ABC。 函數
請按照從小到大的順序輸出全部的3位水仙花數,請用一個「逗號+空格」分隔輸出結果。spa
思路:剛開始看到這道題,我就想到了必須把這個三位數的個位、十位和百位分開。那怎麼分開呢?這裏咱們能夠用python的取餘符號%和取整除符號//這兩個符號進行。好比一個三位數123,123//100能夠獲得百位數1,123%10=3這是個位數,十位數須要計算兩次,123//10%10就能夠獲得十位數2了。code
計算過程有了,但提交仍是不對,哪地方錯了呢?仔細看了下題,原來這道題的輸出結果要求是「逗號+空格」,這個不怎麼好實現,還好這裏我用了列表裏的函數操做,最終代碼提交成功。str.join(i),在變量i除最後一個元素外加strblog
下面是個人代碼:it
1 f=[]#定義了一個列表 2 for i in range(100,1000): 3 a=i//100 #百位數 4 b=i//10%10 5 c=i%10 6 if a**3+b**3+c**3 == i: 7 f.append(i) 8 print(', '.join(str(i) for i in f))