010問題:
什麼是水仙花數?水仙花數是指乙個 n 位正整數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。(例如:1^3 + 5^3+ 3^3 = 153)。
要求:列印輸出所有的三位數"水仙花數"。
流程分析:
思路1:
1、設定範圍:三位數的水仙花i,將i從100到999之間迴圈找書
2、由於i是整數,將i轉為字串,然後將i的百位數、十位數、個位數(x,y,z)分別取出並再次轉換為整數
3、設定條件:
if pow(x,3)+pow(y,3)+pow(z,3)==i
4、如果條件滿足就列印i
思路2:
1、現將這三位數的百位i、十位j、個位k分別從(1,9)、(0,9)、(0,9)這三個範圍中列舉
2、判定條件:
if pow(i,3)+pow(j,3)+pow(k,3)==i*100+j*10+k
3、如果條件滿足就列印ijk
**分析:
**1
for i in range(100,1000):思路1**2x,y,z=map(int,str(i))
if pow(x,3)+pow(y,3)+pow(z,3)==i:
(i)#
輸出結果
153370
371407
for i in range(1,10):思路2題目反思:for j in range(10):
for k in range(10):
if i**3+j**3+k**3==i*100+j*10+k:
(i,j,k)
#輸出結果
1 5 3
3 70
3 7 1
4 0 7
1、思路1需要注意如和將整數轉為字串,因為字串是有順序的,然後再轉為整數,用到的map函式
2、思路2和列舉法很相似,冪次方也可以用pow函式來代替
新學知識點:
1、一道題的兩種不一樣的思路,思路1是我想出來的,思路2是題目的標準答案,我的思路可能轉換起來比較麻煩,標準**一目了然
2、pow有兩種用法
importmath
math.pow( x, y )
pow(x,y[,x])函式是計算x的y次方,如果z在存在,則再對結果進行取模,其結果等效於pow(x,y) %z
注意:
pow() 通過內建的方法直接呼叫,內建方法會把引數作為整型,而 math 模組則會把引數轉換為 float。
3、map(function, iterable, ...)
map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])mark on 2018.04.13#相當於
[3, 7, 11, 15, 19]
迴圈 11 水仙花數 20
水仙花數是指乙個n位正整數 n 3 它的每個位上的數字的n次冪之和等於它本身。例 如 153 13 53 33。本題要求編寫程式,計算所有n位水仙花數。輸入格式 輸入在一行中給出乙個正整數n 3 n 7 輸出格式 按遞增順序輸出所有n位水仙花數,每個數字佔一行。輸入樣例 3輸出樣例 153 3703...
迴圈 11 水仙花數 20
水仙花數是指乙個n位正整數 n 3 它的每個位上的數字的n次冪之和等於它本身。例 如 153 13 53 33。本題要求編寫程式,計算所有n位水仙花數。輸入格式 輸入在一行中給出乙個正整數n 3 n 7 輸出格式 按遞增順序輸出所有n位水仙花數,每個數字佔一行。輸入樣例 3輸出樣例 153 3703...
求水仙花 ghpython 水仙花數02
今天咱們繼續來看看老潘微博裡的乙個python小案例,求水仙花數,這個小案例在前兩天已經分享了,今天分享另一種方法,常言道只要思想不滑坡,方法總比困難多,而且今天的方法個人覺得更pythonic一點。水仙花數 四葉玫瑰數 五角星數 由於2位數的自冪數不存在,這裡直接從100遍歷到100000 for...