窮舉法之水仙花數

2021-07-11 05:37:47 字數 1195 閱讀 9504

問題描述

編乙個程式找出所有的三位數到七位數中的阿姆斯特朗數。阿姆斯特朗數也叫水仙花數,它的定義如下:若乙個n位自然數的各位數字的n次方之和等於它本身,則稱這個自然數為阿姆斯特朗數。例如153(153=1*1*1+3*3*3+5*5*5)是乙個三位數的阿姆斯特朗數,8208則是乙個四位數的阿姆斯特朗數。

演算法分析

演算法分析:由於阿姆斯特朗數是沒有規律的,所以程式只能採用窮舉法,一一驗證範圍內的數是否阿姆斯特朗數,若是則列印之。

深入分析

為了使得程式盡快執行出正確結果,改進的程式中可以使用了乙個陣列power存放所有數字的各次冪之值, power[i,j]等於i的j次方。

程式**

/*原始***/

#include

#include

#include

#include

using

namespace

std;

/*找出三位數到七位數中的阿姆斯特朗數(水仙花數)*/

bool answer(int num)

if (num == sum)

return

true;

else

return

false;

}int main()

}return

0;}

/*改進後的***/

#include

#include

#include

#include

using

namespace

std;

//儲存0-9的 0-9次方

int power[10][10] = ;

/*找出三位數到七位數中的阿姆斯特朗數(水仙花數)*/

bool answer(int num)

if (num == sum)

return

true;

else

return

false;

}int main()

}for (int i=100; i<10000000; ++i)

}return

0;}

Java演算法之「水仙花數」

列印出所有的 水仙花數 所謂 水仙花數 是指乙個三位數,其各位數字立方和等於該數本身。分析 水仙花數首先是個三位數,即在100 999這個範圍內選出所謂的 水仙花數 然後各個位數分別進行立方運算,然後再求和,並且等於其本身。假設乙個水仙花數為i,先將其各個位上的數依次摘出來,然後求平方和,即,i 1...

Python入門之 水仙花數

水仙花數 是指乙個三位數,其各位數字立方和等於該數本身 例如 153 1 5 3 則153是乙個水仙花數 首先定義乙個變數num來接收輸入的值 變數num不是唯一的,可以自己設定 num input 請輸入乙個正整數 判斷輸入的值如果不為零則進行運算 if num 0 水仙花數公式 雙星號 是pyt...

求水仙花 林子 花兒朵朵之水仙花

你是最後一朵時令花 也是我心中的最後一句詩行 我願意把生命付予那一抹淡淡的月色 隨風吟唱,唱你美若仙子夜色未央 都是過去一張朦朦朧朧的網 我只想在沒有雪的冬天 把我潔白的夢連同夜晚的目光 一片,一片的像輕柔的羽毛 在大地的胸膛上如花香一樣飛揚 你有月亮的容貌和太陽的光芒 我知道你是我今生的美麗相遇 ...