问题
输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 1^3 + 5^3 + 3^3。
分析
判断一个数是否为水仙数,首先应将其‘个位’‘十位’‘百位’分别提取出,然后判断其‘个位’的立方 ’ ‘十位’的立方 ‘百位’的立方之和是否等于原数
#include<stdio.h>
int main()
{
int a,b,c,d;
for(a=100;a<999;a++)
{
b=a/100;(取百位)
c=a/10%10;(取十位)
d=a%10;(取个位)
if(a==b^3+c^3+d^3)
printf("%d这是一个水仙花数\n",a);
}
return 0;
}
输出结果为
此外还可以调用pow这个函数 则相应代码为
#include<stdio.h>
#include"math.h"
int main()
{
int a,b,c,d;
for(a=100;a<999;a++)
{
b=a/100;
c=a/10%10;
d=a%10;
if(a==pow(b,3)+pow(c,3)+pow(d,3))
printf("%d这是一个水仙花数\n",a);
}
return 0;
}
结果和上面一样。
以上便是求100-999中的水仙花数的完整代码。