1 水仙花数的定义没搞清楚,水仙花数是一个n位数(n≥3),该数的各个数位上的数字的n次幂之和等于该数本身。
2 根据定义你的第一个while和第二个while循环都是多余的。但a的初始值应该从100开始。
3 c语言中求n次幂不是用"^"运算符,可以看到你的程序中求b的3次方表示为b^3,求x的n次方一般用函数实现,可以是自定义函数,也可以用库函数pow,但pow函数是浮点函数,可能会有误差,对于整型运算,不建议用pow函数。对于3这种次数较小的幂可以直接用连乘表示,如b*b*b。
#include <stdio.h>
void main( )
{
int a, b, c, d;
a = 100;
while((a-1000)<0)
{
b=a/100;
c=(a-100*b)/10;
d=a-100*b-10*c;
if(b*b*b+c*c*c+d*d*d==a)
printf("%d\n", a);
a++;
}
prinrf("end\n");
}
1-1000以内的水仙花数
最新推荐文章于 2022-03-02 18:17:33 发布