题目描述
在三位的整数中,例如153可以满足1^3 + 5^3 + 3^3 = 153,这样的数称之为Armstrong数。将所有的Armstrong数按小到大排序,试写出一程序找出指定序号的三位Armstrong数。
输入
输入包括若干行,每行输入一个序号。输入序号为0时,结束输入。
输出
输出相应序号的Armstrong数,如果输入的序号大于Armstrong数个数,输出0。
样例输入
1
4
6
0
样例输出
153
407
0
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 int main() 6 { 7 int res[10] = {}; 8 int f,m,b; 9 for(int arms=100;arms<1000; arms++) 10 { 11 f = arms/100; 12 m = (arms%100)/10; 13 b = arms%10; 14 15 if((f*f*f+m*m*m+b*b*b)==arms) 16 res[f] = arms; 17 } 18 int input = -1; 19 while(input!=0) { 20 scanf("%d",&input); 21 if(res[input]!=0) 22 cout << res[input] << endl; 23 } 24 cout << 0 << endl; 25 }