【Python練習題 009】 列印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。 這題也是送分題,只要能把任意三位數的百位、十位、個位拆解出來就好辦了。思路:將任意3位數除以100 ...
【Python練習題 009】 列印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。
----------------------------------------------------------------------
這題也是送分題,只要能把任意三位數的百位、十位、個位拆解出來就好辦了。思路:將任意3位數除以100再向下取整,即可得到百位數。將這個3位數減去(百位數*100),即可去掉百位數,然後除以10再向下取整,即可得到十位數。將這個3位數除以10再取整再乘以10(得到整幾百幾十的數字),然後拿這個3位數減去這個數字,即可得到個位數。代碼如下:
import math for i in range(100, 1000): x = math.floor(i/100) #獲得百位數 y = math.floor((i - x*100)/10) #獲得十位數 z = i - math.floor(i/10) *10 #獲得個位數 if i == x**3 + y**3 + z**3: print(i, end=', ')
輸出結果如下:
153, 370, 371, 407
++++++++++++++++++++++++++++++++++++++