類水仙花數檢測

2021-09-28 17:49:53 字數 964 閱讀 2835

相信所有程式語言的初學者都會做過這樣一道題:

求出所有「水仙花"數並輸出,水仙花數是指乙個三位數,其各位數字的立方和確好等於該數本身,如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 輸入資料有多組,每組佔一行,...