打印所有“水仙花数”
所谓“水仙花数”,是指一个三位数,其各位数字立方和等于该数本身。
例如,153是一个水仙花数,因为153=1的立方+ 5的立方+ 3的立方。
方法一:使用do…while语句
#include <stdio.h>
#include <math.h>
int main()
{
int num=100,a,b,c;
do
{
//首先将三位数的各位提取出来//
a=num/100; //百位
b=num/10%10; //十位
c=num%10; //个位
//if(num==(a*a*a+b*b*b+c*c*c))//可以用这条代码替换下面那条
if(num==(pow(a,3)+pow(b,3)+pow(c,3)))//使用pow()函数必须添加头文件<math.h>
printf("%d \n",num);
num++;
}
while (num<1000);
return 0;
}
运行结果:
153
370
371
407
方法二:使用for循环语句
#include<stdio.h>
#include<math.h>
int main()
{
int i,sum;
printf("水仙花数有:");
for(i=100;i<1000;i++)
{
sum=(i/100)*(i/100)*(i/100)+(i%100/10)*(i%100/10)*(i%100/10)+(i%100%10)*(i%100%10)*(i%100%10);
if(i==sum)
{
printf("%d\n",sum);
}
}
return 0;
}
运行结果:
153
370
371
407
编译软件:Dev C++;