问题遇到的现象和发生背景
做判断一个数是否为水仙花数的练习,如153为三位数,153=1^3+5^3+3^3则该数为水仙花数,但是程序运行总出错。
问题相关代码,请勿粘贴截图
#include<stdio.h>
int three(int k,int count);
int main()
{
int x;
int n=0;
int d=1;
int ret;
scanf("%d",&x);
int t=x;
int sum=0;
while(x>0){
n++;
x/=10;
d*=10;
}
d/=10;
while(d>0){
ret=x/d;
x%=d;
d/=10;
sum+=three(ret,n);
}
if(sum==t){
printf("%d是水仙花数");
}else printf("不是。");
return 0;
}
int three(int k,int count)
{
int i;
for(i=1;i<=count;i++) {
k*=k;
}
return k;
}