1. 程式人生 > >【C語言訓練】阿姆斯特朗數

【C語言訓練】阿姆斯特朗數

題目連結:http://115.28.203.224/problem.php?cid=1010&pid=36

題目描述

如果一個正整數等於其各個數字的立方和,則稱該數為阿姆斯特朗數(亦稱為自戀性數)。
如 407=4^3+0^3+7^3就是一個阿姆斯特朗數。試程式設計求大於1小於1000的所有阿姆斯特朗數。

輸入

輸出

從小到大輸出,數之間用兩個空格分開

樣例輸出

153 370

提示

可採用窮舉法,依次取1000以內的各數(設為i),將i的各位數字分解後,據阿姆斯特朗數的性質進行計算和判斷。

程式碼

 1 #include <iostream>
 2 using namespace std;
 3
int main() 4 { 5 int flower[1000]; 6 int a, b, c; 7 int i, j, sum; 8 for (i = 100, j = 0; i < 1000; i++) 9 { 10 a = i / 100; 11 b = i / 10 % 10; 12 c = i % 10; 13 sum = a * a * a + b * b * b + c * c * c; 14 if (sum == i) 15 { 16 flower[j] = i;
17 j++; 18 } 19 } 20 for (i = 0; i < j; i++) 21 { 22 cout<<flower[i]; 23 if (i != j - 1) 24 cout<<" "; 25 } 26 return 0; 27 }