阿姆斯特朗数
阿姆斯特朗数
时间限制:1秒 内存限制:128M
题目描述
编程找出所有的三位数到七位数中的阿姆斯特朗数。阿姆斯特朗数也叫水仙花数,它的定义如下:若一个n位自然数的各位数字的n次方之和等于它本身,则称这个自然数为阿姆斯特朗数。例如,153(153=1X1X1+3X3X3+5X5X5)是一个三位的阿姆斯特朗数,8208则是一个四位的阿姆斯特朗数。
输入描述
无输入
输出描述
每行输出一个阿姆斯特朗数,按从小到大的顺序按行输出。
样例
输出
暂不提供
#include<iostream>
using namespace std;
int p[10][8],f[10];
int main(){
for(int i=0;i<=9;i++){
p[i][1]=i;
}
for(int i=0;i<=9;i++){
for(int j=2;j<=7;j++){
p[i][j]=p[i][j-1]*i;
}
}
for(int i=100;i<=9999999;i++){
int t=i,num=0;
while(t){
num++;
f[num]=t%10;
t/=10;
}
int sum=0;
for(int i=1;i<=num;i++){
sum+=p[f[i]][num];
}
if(sum==i){
cout<<i<<endl;
}
}
}