请问这样求水仙花数有什么错误的地方吗?为啥输出的结果不对?
你应该while循环结束后再判断是否是水仙花数,不能在循环中判断啊
do
{
sum += pow(t%10,n);
t /= 10;
}while(t>0);
if(sum==i)
printf("%d\n",i);
你应该while循环结束后再判断是否是水仙花数。
求水仙花数其实很简单,循环嵌套加if判断就可以了,不需要你这么麻烦:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, k, n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10%10;
k=n%10;/*分解出个位*/
if(n==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
return 0;
}
如果对你有帮助,还请帮忙点个采纳,谢谢!
sum==i要放到do,while外面来判断呀
没循环完你判断个什么劲
如果一个数abc,a^3+b^3==abc,c还没有加上去,就已经满足等式了,那你也认为它是个水仙花数