水仙花数定义各个位数立方和等于它本身的三位数。
通过上面已知水仙花数是一个三位数,也就是100到999之间;要求是每位数的立方和等于它本身。
分析:假设要判断的数是num则这上数的个、十、百位的数字应该是:
个位:g=num%10;
S=num/10%10;
B=num/100;
要求满足条件:ggg+sss+bbb==num;
所以用穷举的方法代码如下:
#include "stdio.h"
void main()
{
int num;//定义数变量
int g,s,b;//定义个、十、百位变量名
printf("水仙共数有:");
for(num=100;num<=999;num++)//穷举测试
{
g=num%10; //个位数
s=num/10%10; //十位数
b=num/100; //百位数
if(g*g*g+s*s*s+b*b*b==num) //判断条件
{
printf("%d\t",num);
}
}
}