C語言水仙花數的實現

2022-09-28 18:00:19 字數 1512 閱讀 6533

水仙花數其實是自冪數的一種,自冪數是乙個自然數中它每個個位上的數字n次方相加之和為它本身!,這裡n可以稱為立方指數!

而水仙花數的n次方的n是3,這裡3可以稱為自然數的立方指數

次方即為自身相乘多少次,一般用^表示,比如1的3次方表示為:1^3

比如153這個數是乙個水仙花數,為什麼呢?

下面我們用公式來看一下:

153有三個數字

1、5、3

1的三次方為1:

1*1*1=1

列:1*1=1

1*1=1

5的三次方為125:www.cppcns.com

5*5*5=125

列:5*5=25

25*5=125

3的三次方為27

3*3*3=27

列:3*3=9

9*3=27

然後再將三個次方的和加一起:

1+125+27=153

所以自然數的153是乙個水仙花數,因為它的三個數為拆分為1、5、3的自然數,而1^3+5^3+3^3剛好等於153,也就是原數!

說的簡單一點就是,乙個整數自然數上的個位自然數的3次方加起來等於這個整數自然數,且立方指數為3的即為水仙花數!

其實還有很多其他的:

一位自冪數:獨身數

兩位自冪數:沒有

三位自冪數:水仙花數

四位自冪數:四葉玫瑰數

五位自冪數:五角星數

六位自冪數:六合數

七位自冪數:北斗七星數

八位自冪數:八仙數

九位自冪數:九九重陽數

十位自冪數:十全十美數

由於一些型別儲存大小可能不能儲存太高位,需要使用一些高精度的儲存型別!

在囉嗦幾句,三位的水仙花數意味著數字長度只能是三位,上面說的立方指數為什麼是3?

因為水仙花的立方指數計算規則是它有多少個個位!立方指數為3的才算水仙花數!

所以如果自然數有程式設計客棧四個個位那麼立方指數就是4,也就是四葉玫瑰花數!

輸出所有的「水仙花數」,所謂的「水仙花數」是指乙個三位數其各位數字的立方和等於該數本身,例如153是「水仙花數」,因為:153 = 13 + 53 + 33。

根據「水仙花數」的定義,判斷乙個數是否為「水仙花數」,最重要的是要把給出的三位數的個位、十位、百位分別拆分,並求其立方和(設為s),若s與給出的三位數相等, 三位數為「水仙花數」,反之,則不是。

「水仙花數」是指滿足某一條件的三位數,根據這一資訊可以確定整數的取值範圍是 100〜999。對應的迴圈條件如下:

for(n=10; n<1000; n++)

對**的說明:

對於每個位置上的數值將其拆分的演算法有很多種,根據不同情況選擇不同演算法(對於同一問題不同演算法的效率有時會相差很多)。

下面是完整的**:

#include www.cppcns.comio.h>

int main()

printf("\n")nuklvur;

return 0;

}執行結果:

result is:153  3程式設計客棧70  371  407

c語言 水仙花數

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

c語言實現水仙花數

水仙花數 實際上是自冪數的定義 自冪數的定義 對於乙個 n位數來說 如果每個位的數字的n次冪之和等於該n位數,那麼我們就稱該數為自冪數。對於3位數來說 13 53 3 3 1531 3 5 3 3 3 153 13 53 33 1 53這是我們常見的乙個水仙花數。因為水仙花數是自冪數的一種,因此直接...

c語言的水仙花數

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