求所有的水仙花数,将各个水仙花数存放到一个数组中并在屏幕上打印出来。所谓水仙花数是指一个三位正整数,它各位数字的立方之和等于此正整数。例如,153是一个水仙花数,因为153=13+53+33。
分析:
① 使用穷举法,测试所有的三位正整数。
② 测试的次数固定,适合于使用for循环。
③ 设这个三位正整数为u,则:
百位上的数为a=u/100;
十位上的数为b=u/10-a*10;
个位上的数为c=u-a*100-b*10。
程序如下:
main( )
{
int a,b,c,x[999],u, i=0,j;
printf("The result is : \n");
for (u=100;u<1000;u++)
{
a=u/100; /*百位上的数*/
b=u/10-a*10; /*十位上的数*/
c=u-a*100-b*10; /*个位上的数*/
if (a*100+b*10+c==a*a*a+b*b*b+c*c*c)
{
x[i]=u;
i++;
}
}
for (j=0;j printf("%8d",x[j]);
}
运行结果为:The result is :153 370 371 407
请思考:请你用别的编程方法再解此题。