題目:輸出所有的水仙花數。所謂水仙花數是指乙個3位數,其各位數字的立方和等於該數本身。例如,153是乙個水仙花數,因為153 = 1立方 + 5立方 + 3立方。
解決方法:
方法一:使用列表推導式
1 data=[i for i in range(100,1000)if pow(i//100,3)+pow(i//10%10,3)+pow(i%10,3)==i]
這個方法是比較簡單,但是數字只限於100-999,如果超出了這個範圍又要在除1000,所以在方法二中我決定使用分解的方法,將乙個數字分解成個位、十位、百位、千位、萬位等,這樣便可以一直求到很大的數字,而且**還比較簡潔。
方法二:使用函式和迴圈
1defd():
2def
f(n):
3 c=list(n[::])
4returnc5
for i in range(100,100000):
6 d=f(str(i))
7 s=0
8for j in
d:9 s+=pow(int(j),3)
10if(s==int(i)):
11print("
%d"%s)
12 d()
程式執行結果:
153370
371407
水仙花數求解
c 如果表示x的y次方,可以用pow x,y 記得加標頭檔案 include 也可以直接相乘,如 pow x,3 起初執行時發現if條件語句沒有起到任何作用,程式輸出了m n之間的所有數字。原因是將x的y次方表示成了x y int main n 100 int i 1,count 1 while c...
水仙花問題
題目 輸出所有的 水仙花數 1.水仙花數是乙個三位數 2.水仙花數的個位 十位 百位的數字立方和等於原數。分析 運用for迴圈遍歷所有的三位數,三位數從100開始,到999結束 for int i 100 i 999 i 取出三位數中的個位十位百位數字 int a 數的個位 int b 數的十位 i...
python求解水仙花數的方法
乙個n位的十進位制正整數,如果它的每個位上的數字的n次方的和等於這個數本身,則稱其為花朵數。程式設計客棧 usr bin python def get flower n,ofile d pow pow i,n for i in range 0,10 v min 1 pow 10,n 1 v max ...