水仙花數業內的大家可能聽說過,但是對於初學者來講,對於水仙花數還是比較陌生的。 首先要知道的是水仙花數的計算公式:153=1**3+5**3+3**3: 如何去判定這個數是否為水仙花數,最好的辦法就是用for內嵌迴圈了,因為涉及到了公式所以很多數學邏輯不是很好的兄臺,就尷尬了,其實有一個比較簡單的數 ...
水仙花數業內的大家可能聽說過,但是對於初學者來講,對於水仙花數還是比較陌生的。
首先要知道的是水仙花數的計算公式:153=1**3+5**3+3**3:
如何去判定這個數是否為水仙花數,最好的辦法就是用for內嵌迴圈了,因為涉及到了公式所以很多數學邏輯不是很好的兄臺,就尷尬了,其實有一個比較簡單的數學邏輯來運算,如設定一個1-999的水仙花數, 程式如下:
for x in range(1,10): #百位數的計算
for y in range(1,10):#十位數的計算
for z in range(1,10):#個位數的計算
i=x*100+y*10+z*1
if x**3+y**3+z**3==i:
print(i)
那麼這段代碼首先是區分開來首先算出個百位,十位,個位的數,在進行下一步的判定。
舉例說明:
for x in range(1,10): #外迴圈第一層迴圈 x=1
for y in range(1,10)# #內迴圈環第二層迴圈 y=1
for z in range(1,10): #第三層迴圈第一層迴圈 z=1
那麼現在這個結構就是 x=1,y=1 z =1,這個三個數字分別的站位不同 x是百位,y的十位z是個位,但是我們要求是100-999的數所以下一步我們要這麼做,將xyz這三個值根據站位來相乘並相加x*100+y10+z*1那麼現在三個(xyz)迴圈是111,一個變數,方便下麵的程式調用。i=x*100+y*10+z*1
我們要給這段表達式設置剛開始我們說了水仙花數的計算公式是每個值的三次方,下麵我們就可以直接判定:
if x**3+y**3+z**3==i:
如果x的3次方加上y的3次方再加上z的三次方等於我們設置的變數i的話那麼他就是水仙花數!
執行結果如下: