回复 楼主 闲客一位
我终于搞明白了,要哭了。
程序代码:
#include <stdio.h>
#include<math.h>
main()//水仙花的输出要对所有三位数进行判断,所以关键在于如何输出所有的三位数。
//for和while很像,只不过for把while判断条件放在式2处,并将while循环一次产生的影响放到式3处。式1是前提预设。
{
int i=1,j=0,k=0,n;
//法一:
for(n=100;n<1000;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%6d",n);
}
printf("\n");
//法二:
for(i=1;i<=9;i++)
{
for(j=0;j<=9;j++)
{
for(k=0;k<=9;k++)
{
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
printf("%6d",i*100+j*10+k);
}
}
}
printf("\n");
//法三:
i=1;j=0;k=0;//因为前面法一法二运行后他们都不是初始值,所以要重新赋值。
while(i<=9){
int z;
z=i*i*i+j*j*j+k*k*k;
n=i*100+j*10+k;
k++;
if(k==10){
k=0;j++;
}
if(j==10){
j=0;i++;}
if(z==n){printf("%d\n",n);}
}
}