首页 > 代码库 > 打印出100-999之间的数所有的“水仙花数”。。所谓水仙花数,就是指3位数,其各位数字立方和等于该数本身。

打印出100-999之间的数所有的“水仙花数”。。所谓水仙花数,就是指3位数,其各位数字立方和等于该数本身。

//153是一个非常特殊的数,它等于它的每位数字的立方和,
//即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
第一种方式分离每位数字
#include<stdio.h>
int main()
{
	int a,b,c;
	int i;
	for(i=100;i<1000;i++)
	{
		a=i%10;
		b=i/10%10;
		c=i/100;
		if(i==a*a*a+b*b*b+c*c*c)
		{
			printf("%d\n",i);
		}
	}
	return 0 ;	
} 

第二种方式:三重for循环

#include<stdio.h>
int main()
{
	int a,b,c;
	int i,j,k;
	for(i=1;i<=9;i++)
	{
		for(j=0;j<=9;j++)
		{
			for(k=0;k<=9;k++)
			{
				if(i*i*i+j*j*j+k*k*k==i*100+j*10+k)
				{
					printf("%d%d%d\n",i,j,k);
				}
			}
		}
	}
	printf("\n");
	return 0 ;	
} 


打印出100-999之间的数所有的“水仙花数”。。所谓水仙花数,就是指3位数,其各位数字立方和等于该数本身。