相信所有程式語言的初學者都會做過這樣一道題:
求出所有「水仙花"數並輸出,水仙花數是指乙個三位數,其各位數字的立方和確好等於該數本身,如153=111+555+333.
實際上,水仙花數屬於自冪數的一種,即各位數的位數次冪和等於本身。
不同位數的自冪數也有不同的名稱
一般我們會建立乙個迴圈遍歷100到999,然後將個十百為拆分然後檢測。
for(int 1=100;i<1000;i++)
完成程式我就想,為什麼不直接實現求自冪數?不限定位數,比如求出0~9999999的所有自冪數。
為了完成這個小目標,我們需要理清思路。
輸入任意乙個數字n,我們首先要確定它的位數,便於之後的計算判定。
int tmp=n;
int count=0; //位數計數器
while(tmp!=0)
這樣可以的到該數的位數count,然後是確定每一位上的數並計算冪數和。
int sum=0 //存放次冪和
tmp=n;
while (tmp != 0)
最後進行判斷
if(sum == n)
完整**如下
public static void waterflower(int n)
tmp = i;
//求tmp的每一位上的數字 123
while (tmp != 0)
if(sum == i) }}
這樣只要在主函式中呼叫函式waterflower()並輸入最大範圍值n即可得到範圍內的自冪數了。 求水仙花 ghpython 水仙花數02
今天咱們繼續來看看老潘微博裡的乙個python小案例,求水仙花數,這個小案例在前兩天已經分享了,今天分享另一種方法,常言道只要思想不滑坡,方法總比困難多,而且今天的方法個人覺得更pythonic一點。水仙花數 四葉玫瑰數 五角星數 由於2位數的自冪數不存在,這裡直接從100遍歷到100000 for...
水仙花數題解
水仙花數 3位數,其各位數字立方和為該數本身.include stdio.h void main int i,j,k,n 定義n的個位數為k,十位為j,百位為i printf narcissus numbers are for n 100 n 1000 n 使n從100 999迴圈 i n 100 ...
hdu 水仙花數
problem description 春天是鮮花的季節,水仙花就是其中最迷人的代表,數學上有個水仙花數,他是這樣定義的 水仙花數 是指乙個三位數,它的各位數字的立方和等於其本身,比如 153 1 3 5 3 3 3。現在要求輸出所有在m和n範圍內的水仙花數。input 輸入資料有多組,每組佔一行,...