题目要求
编写程序,判断一个整数是否为水仙花数,所谓的水仙花数是指一个三位数,其各个为上的数字立方和等于其本身
例如: 153 = 1*1*1 + 5*5*5 + 3*3*3
思路分析
- 首先从键盘输入三位数的整数
- 然后获取到这个三位数的各个为上的数字 使用/和%
- 将得到的各个数字(百位,十位,个位)立方,求和,来判断是否和原来的数相等
撸写代码
#include<stdio.h>
int main()
{
int num,sum;
int num1,num2,num3;
printf("请输入一个三位数的整数:");
scanf("%d",&num);
num1 = num / 100; //百位数
num2 = num % 100 / 10; //十位数
num3 = num % (num1*100+num2*10); //个位数
sum = num1*num1*num1 + num2*num2*num2 + num3*num3*num3;
if(num==sum)
{
printf("\n%d这个数是水仙花数!",num);
}
else
{
printf("\n%d这个数不是水仙花数!",num);
}
printf("\n百位数=%d 十位数=%d 个位数=%d",num1,num2,num3);
printf("\n各个为数上的立方和为%d!",sum);
return 0;
}