打印所有“水仙花数”

所谓“水仙花数”,是指一个三位数,其各位数字立方和等于该数本身。
例如,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++;

^ v ^

更多推荐

【C语言编程】打印所有的“水仙花数”