用C语言求水仙花数!

2020-09-07 旅游 65阅读
思路没大问题,,不过,水仙花数好像是指一个n位数(n>=3)的各个位的n次方的和等于这个数,那这个数就是水仙花数。在百度百科上有介绍的,上面也有程序。
#include
void main()
{
int n,s,sum=0,i;
for(i=1;i<=10000;i++) /*所以你这里可以直接从i=100开始,,*/
{
do {
n=i;
s=n%10;
n=n/10;
sum=sum+s*s*s;
}
while(n==0); /*do-while循环是指当while后面的表达式值为真的,就继续执行循环,所以你这个就是当n==0的时候,继续执行循环,而你的本意是指当n>0的时候执行循环,当n==0的时候循环结束,所以你这里应该改成:while(n>0); 还有,每次循环之后得给sum重新归零,不然它会从第一个开始一直累加上去的,记得我以前也忘记了重新归零,然后值得出了一个不是水仙花数的水仙花数,至于你这个sum=0;的语句是放在do-while循环的后面还是前面就由你自己了*/
if(i==sum);
printf("%d",sum);
}
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com