所謂水仙花數就是給定隨機的三位數,它的各位數字的三次冪之和等於它本身,如:
三位數153=1^+5^3+3^3
要求編程實現判斷給定范圍內的水仙花數。
難點在於要分解出三位數的個位數、十位數和百位數。
下面用153為例,分解百位數、十位數和個位數
分解百位數:153//100=1
分解十位數:153//10%10=5
分解個位數:153%10=3
其實只要把要分解的數字想辦法弄到個位上去,即往前點小數點,如要分解百位數就要把1弄到個位數上去即往前點2為即1.53,分解十位數即將小數點往前點1位即15.3再與10取余,分解個位數簡單了與10取余即可。代碼如下:
for n in range(0,100000000):
i=n//100#得到百位數
j=n//10%10#得到十位數
k=n%10#得到個位數
if n==i**3+j**3+k**3:
print('水仙花數:{}'.format(n))
執行效果如下: