当前位置: 代码迷 >> C语言 >> 高手能不能指点一下?谢谢!
  详细解决方案

高手能不能指点一下?谢谢!

热度:145   发布时间:2007-04-06 10:51:02.0
高手能不能指点一下?谢谢!
题目是这样的:设计程序输出所有的"水仙花数"."水仙花数"是指一个3位数,它的各位数字的立方和等于该数本身,例如:数值153=1的立方+5的立方+3的立方,所以153是一个"水仙花数".
以下是我写的程序:
#include<stdio.h>
main()
{
long int x,y,z,a,b,c;
for(x=1;x<=9;x++)a=x*x*x;
{
for(y=0;y<=9;y++)b=y*y*y;
{
for(z=0;z<=9;z++)
c=z*z*z;
}
if(a+b+c==x*100+y*10+z)
printf("%d%d%d",x,y,z);
}
}

调试都通过,可是执行该程序的时候却执行不了,不能显示.请问是什么问题,是我的算法就有问题,还是循环用的有问题.
谢谢!
----------------解决方案--------------------------------------------------------

分号不要乱打


----------------解决方案--------------------------------------------------------

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

}
}
}


----------------解决方案--------------------------------------------------------
我给你写了个:
#include<stdio.h>
int main()
{
int i,a,b,c;

for (i=100;i<=999;i++)
{
a=i%10;
b=(i/10)%10;
c=(i/10)/10;
if (a*a*a+b*b*b+c*c*c==i)
printf("%-5d",i);
}
printf("\n");
return 0;
}

----------------解决方案--------------------------------------------------------
花括号标得有点乱.
----------------解决方案--------------------------------------------------------

#include "Stdio.h"
#include "math.h"
/*穷举法*/
main()
{int i,j,k,sum;
for(i=1;i<=9;i++)
{for(j=1;j<=9;j++)
{for(k=1;k<=9;k++)
{sum=i*100+j*10+k;
if(pow(i,3)+pow(j,3)+pow(k,3)==sum)
printf("%d\n",sum);}
}
}
}

----------------解决方案--------------------------------------------------------

谢谢提醒!


----------------解决方案--------------------------------------------------------

谢谢大家!
搞定!
又进步了!


----------------解决方案--------------------------------------------------------
  相关解决方案