题目:水仙花数是指该N位数的各位的N次方之和等于其本身;
先写出较为简单的三位水仙花数
代码如下:
#include
int main()
{
int i,t,n,sum;
for(i = 100; i < 1000; ++i) {
sum = 0;
n = i;
while(n) {
t = n % 10;
sum += t * t * t;
n /= 10;
}
if(sum == i) printf("%d ",sum);
}
printf("\n");
return 0;
}
运行结果:
153 370 371 407
Process exited after 0.1523 seconds with return value 0
请按任意键继续. . .
再尝试n位数:
#include
int main()
{
int n;
scanf("%d",&n);
//n=3;
int first =1;
int i=1;
while(i
first *=10;
i++;
}
//printf("first=%d\n",first);//检查first是否符合需求
i=first;
int t=i;
int sum=0;
while(i
do{ //do while循环,0无影响
int d = t%10;
t/=10;
int p=d;
int j=1;
while (j
p*=d;
j++;
}
sum+=p;
}while(t>0);
if(sum==i){
printf("%d\n",i);
}
i++;
}
return 0;
}
待完成.
Steven_Mmm
发布了3 篇原创文章 · 获赞 0 · 访问量 22
私信
关注
标签:百合花,int,sum,算法,printf,return,main,水仙花
来源: https://blog.csdn.net/qq_42765398/article/details/103996028