int main() {
int n;
scanf("%d",&n);
int i,m,p,sum;
for(i=pow(10,n-1);i<=(pow(10,n)-1);i++){
while(i!=0){
m=i%10;
if(m==0){
i=i/10;
continue;
}
p=pow(m,n);
sum+=p;
i=i/10;
}
if(sum==i) printf("%d\n",i);
}
return 0;
}
错在哪了??
已经修改完成,并运行通过:
#include<stdio.h>
#include<math.h>
int main() {
int n,i,i1,m,p,sum;
scanf("%d",&n);
for(i=pow(10,n-1);i<=(long)(pow(10,n)-1);i++){
i1=i; sum=0;
while(i1!=0){
m=i1%10;
p=pow(m,n);
sum+=p;
i1=i1/10;
}
if(sum==i) printf("%d\n",i);
}
return 0;
}
追问我那是错在哪
我那是错在哪
追答你仔细对照一下不就知道了吗。
控制变量 i 的值被修改了。
sum重复使用未重新初始化。
懂了~谢谢~
懂了~谢谢~