如何用C語言完成水仙花數的搜尋

2021-10-11 18:36:55 字數 1178 閱讀 5606

概念講解:

什麼是水仙花數呢?

所謂的水仙花數是指:乙個n 位數( n≥3 ),它的每個位上的數字的n 次冪之和等於它本身。 例如153,370,371等都是水仙花數,就拿153來說,153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3

為了搜尋指定範圍的所有水仙花數,最好的辦法當然是遍歷啦,因此,編寫**的第一步就是確定使用for迴圈實現對目標範圍所有數字的遍歷根據水仙花數的概念,我們必須確定當前數字的位數,這樣才能確定每一位上的數字應該用幾次方來求和

例如:153的位數為3;370的位數為3;1634的位數為4;

確定好當前數字的位數後,則需要求出來當前數字的每一位上都是幾

例如:153的每一位上的數字分別為1、5、3;370的每一位上的數字分別為3、7、0;

知道當前數字的位數,以及每一位上的數字分別是什麼後,剩下的就剩下求和了

例如: 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3; 370=3 * 3 * 3+7 * 7 * 7+0 * 0 * 0;

1634=1 * 1 * 1 * 1+6 * 6 * 6 * 6+3 * 3 * 3 * 3+4 * 4 * 4 * 4;

將最終的求和結果和當前數字進行比較,如果相等,則為水仙花數,如果不是,那進行下乙個數字的判斷,直到遍歷所有待求範圍的數字

#include

//水仙花數

//1.確定位數

//2.確定每個數字

//3.判斷

intpow

(int number,

int times)

//自定義函式求number的times次方

return result;

}int

main()

//確定每一位的值,求count次方後,累加起來

tem = i;

for(

int j =

0; j < count; j++

)//判斷累加和是否與當前數字相同,相同則為水仙花數,將其列印出來

if(sum == i)

}return0;

}

c語言 水仙花數

1.在螢幕上輸出以下圖案 2.求出0 999之間的所有 水仙花數 並輸出。水仙花數 是指乙個三位數,其各位數字的立方和確好等於該數本身,如 153 1 5 3?則153是乙個 水仙花數 在數論中,水仙花數 narcissistic number 也稱為自戀數 自冪數 阿姆斯壯數或阿姆斯特朗數 arm...

c語言的水仙花數

題目 是說有這樣的一些三位數,例如 153它能夠由111 555 333之和組成。這樣的三位數我們叫作水仙花數。現在要求我們找出這樣的所有的水仙花數。即乙個三位數xyz yyy zzz。要求 每乙個水仙花數都需要站一行。思路 首先需要輸入乙個三位數,然後需要進行驗證是否符合水仙花數的條件。那麼就需要...

C 水仙花數

include include using namespace std void divide int,int int int void main int hun 0,ten 0,one 0 for int i 100 i 999 i divide i,hun,ten,one if i pow hu...