记录考研复试C
题目:判断一下在n范围内的水仙花数
int Mypow(int a,int b){//指数运算 原pow(),double类型算153的结果是错的,算的结果是152.
int x=1,i;
for(i=0;i<b;i++){
x=x*a;
}
return x;
}
void Flower(int n,int m){//计算水仙花数
int x,i,y=n,sum=0;
for(i=0;i<m;i++){
while(y){
x=y%10;
sum+=Mypow(x,m);
y=y/10;
}
}
if(sum==n)
printf("%d\n",n);
}
int JudgeLength(int n){//判断长度
int m=0;
while(n){
m++;
n=n/10;
}
return m;
}
void main(){
//水仙花数
printf("请输入想要输出到多少\n");
int n;
scanf("%d",&n);
int len,i;
for(i=10;i<=n;i++){
len=JudgeLength(i);
Flower(i,len);
}
}