問題描述
編乙個程式找出所有的三位數到七位數中的阿姆斯特朗數。阿姆斯特朗數也叫水仙花數,它的定義如下:若乙個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...
求水仙花 林子 花兒朵朵之水仙花
你是最後一朵時令花 也是我心中的最後一句詩行 我願意把生命付予那一抹淡淡的月色 隨風吟唱,唱你美若仙子夜色未央 都是過去一張朦朦朧朧的網 我只想在沒有雪的冬天 把我潔白的夢連同夜晚的目光 一片,一片的像輕柔的羽毛 在大地的胸膛上如花香一樣飛揚 你有月亮的容貌和太陽的光芒 我知道你是我今生的美麗相遇 ...