水仙花数:三位正整数,其各位数字的立方和等于该数本身。例如:153=111+555+333
解决思路:分离各个位数
for(i=0;i<3;i++){
a[i] = temp%10;
temp/=10;
}
求和
for(i=0;i<3;i++){
sum+=a[i]*a[i]*a[i];
}
全部代码
#include<stdio.h>
int main(){
//水仙花数
int num,a[3],temp,i,sum=0;
printf("请输入一个三位数:\n");
scanf("%d",&num);
temp = num;
for(i=0;i<3;i++){
a[i] = temp%10;
temp/=10;
}
for(i=0;i<3;i++){
sum+=a[i]*a[i]*a[i];
}
if(sum==num){
printf("%d是水仙花数",num);
}else{
printf("%d不是水仙花数",num);
}
return 0;
}
结果测试