#include
#include
int main()
{
int n,i=1,t=1;
printf("请输入n的值:");
scanf("%d",&n);
while(i
{t=t10;
i++;}
int num,digit=t,j=0;
double sum;
while(digit
{ sum=0;
j=digit;
while(j!=0)
{num=j%10;
sum=sum+pow(num,n);
j=j/10;
}
if(sum==digit)
printf("%d ",digit);
}digit++;
}
把digit++移到while循环里面就可以了,修改了一下,如下:
参考链接:
水仙花数_百度百科
#include <stdio.h>
#include <math.h>
int main()
{
int n,i=1,t=1;
printf("请输入n的值:");
scanf("%d",&n);
while(i<n)
{t=t*10;
i++;}
int num,digit=t,j=0;
double sum;
while(digit<t*10)
{
sum=0;
j=digit;
while(j!=0)
{num=j%10;
sum=sum+pow(num,n);
j=j/10;
}
if(sum==digit)
printf("%d ",digit);
digit++;
}
}
代码格式化一下吧,*号没了
t10是什么东西啊?能讲讲原题目吗?