輸出方法:首先利用for語句循環(huán)從100到999的所有數(shù)字,并且把它賦值給變量n;然后分解變量n,獲取個位數(shù)k、十位數(shù)j和百位數(shù)i;最后判斷i、j和k數(shù)的立方和是否等于n,如果等于,就使用“print(n)”語句輸出即可。
本教程操作環(huán)境:windows7系統(tǒng)、python3.7版,DELL G3電腦
所謂"水仙花數(shù)"是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個"水仙花數(shù)",因為153=1的三次方+5的三次方+3的三次方。
python輸出所有的水仙花數(shù)
for n in range(100,1000): i = n // 100 j = n // 10 % 10 k = n % 10 if n == i ** 3 + j ** 3 + k ** 3: print (n)
輸出:
153 370 371 407
詳解
程序分析:利用for循環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。
第一行:
for n in range(100,1000):
因為水仙花數(shù)是一個三位數(shù),所以我們就循環(huán)從100到999的所有數(shù)字,并且把它賦值給n
第二行:
i = n // 100
用n整除100,得到的其實就是三位數(shù)的百位數(shù)字,將它賦值給i
第三行:
j = n // 10 % 10
用n整除10,得到的是百位數(shù)和十位數(shù)組成的兩位數(shù),再用這個數(shù)除以10求余數(shù),就得到了我們的十位數(shù)字,將它賦值給j
第四行:
k = n % 10
用n除以10,求余數(shù),得到的就是n的個位數(shù)數(shù)字,將它賦值給k,這個時候三位數(shù)n的百位、十位、個位數(shù)字,我們都已經(jīng)得到,并且分別賦值給了i,j,k
第五行:
if n == i ** 3 + j ** 3 + k ** 3:
判斷:如果n等于它百位數(shù)字的立方+十位數(shù)字的立方+個位數(shù)字的立方,那么它就是水仙花數(shù),這個時候,將滿足條件的n打印出來,否則就進入下一個循環(huán)
【