水仙花數業內的你們可能據說過,可是對於初學者來說,對於水仙花數仍是比較陌生的。blog
首先要知道的是水仙花數的計算公式:153=1**3+5**3+3**3:數學
如何去斷定這個數是否爲水仙花數,最好的辦法就是用for內嵌循環了,由於涉及到了公式因此不少數學邏輯不是很好的兄臺,就尷尬了,其實有一個比較簡單的數學邏輯來運算,如設定一個1-999的水仙花數, 程序以下:class
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=1im
for y in range(1,10)# #內循環環第二層循環 y=1img
for z in range(1,10): #第三層循環第一層循環 z=1di
那麼如今這個結構就是 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*1co
咱們要給這段表達式設置剛開始咱們說了水仙花數的計算公式是每一個值的三次方,下面咱們就能夠直接斷定:
if x**3+y**3+z**3==i:
若是x的3次方加上y的3次方再加上z的三次方等於咱們設置的變量i的話那麼他就是水仙花數!
執行結果以下: