水仙数练习循坏
include<stdio.h>
int main()
{
int n,d;
scanf("%d",&n);
int f=1;
int i=1;
while(i<n)
{
f=f*10;
i++;
}
i=f;
//遍历n位的所有数
while(i<f*10){
//操作容易对i造成破坏,故用t来替换i
int t=i;
int s=0;
while(t>0)
{
d=t%10;
t=t/10;
int p=d;
int j=1;
while(j<n)
{p=p*d;
j++;
}
s=s+p;
}
//用两个循坏实现累加
if(s==i)
printf("%d\n",i);
i++;}
}

浙公网安备 33010602011771号