水仙花数,即阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
如何用c语言来判断一个数字是否是水仙花数呢?
根据上面的例子,我们可以知道第一步我们要先得到这个三位数的每一位数,即知道他的个、十、百位各是什么;第二步再将这三位分别求其三次方再相加;第三步判断相加的和是否和原来的三位数相同。如果相同,则该三位数是水仙花数,否则不是水仙花数。
具体代码如下
#include<stdio.h>
int main(){
int num;
int a,b,c;
int sum;
printf("请输入一个三位数:");
scanf("%d",&num);
a=num%10; //个位
b=num/10%10; //十位
c=num/100%10; //百位
sum=a*a*a+b*b*b+c*c*c;
if(sum==num)printf("%d这个数是水仙花数\n",num);
else printf("%d这个数不是水仙花数\n",num);
return 0;
}
运行结果如下图: