python學習(三)之三位水仙花數


  前幾天,學完python的數值類型之后,老師留了幾道練習題,里面就有三位水仙花數的計算這道題。雖然難度不大,但的確很有趣。下面是對於這道題我的答案,答案已通過驗證。

三位水仙花數的計算

描述

“3位水仙花數”是指一個三位整數,其各位數字的3次方和等於該數本身。例如:ABC是一個“3位水仙花數”,則:A的3次方+B的3次方+C的3次方 = ABC。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

請按照從小到大的順序輸出所有的3位水仙花數,請用一個“逗號+空格”分隔輸出結果。

  思路:剛開始看到這道題,我就想到了必須把這個三位數的個位、十位和百位分開。那怎么分開呢?這里我們可以用python的取余符號%和取整除符號//這兩個符號進行。比如一個三位數123,123//100可以得到百位數1,123%10=3這是個位數,十位數需要計算兩次,123//10%10就可以得到十位數2了。

  計算過程有了,但提交還是不對,哪地方錯了呢?仔細看了下題,原來這道題的輸出結果要求是“逗號+空格”,這個不怎么好實現,還好這里我用了列表里的函數操作,最終代碼提交成功。str.join(i),在變量i除最后一個元素外加str

下面是我的代碼:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM