3位数水仙花数 C语言的问题

来源:百度知道 编辑:UC知道 时间:2024/07/11 05:14:02
#include<stdio.h>
void main ()
{
int a50,a20,a10,a5;
a50=1;
while(a50<10&&a50>0)
{
a20=1;
while(a20<25&&a20>0)
{
a10=1;
while(a10<50&&a10>0)
{
a5=30-a50-a20-a10;
if(a50*50+a20*20+a10*10+a5*5==500&&a5>0)
printf("a50=%d,a20=%d,a10=%d,a5=%d\n",a50,a20,a10,a5);
a10++;
}
a20++;
}
a50++;
}
}
=======================================================
为什么输出不了结果 哪里错了呢
哈哈。。。发错了。。。
===============================================================
#include<stdio.h>
void main ()
{
int a,b,c,e,a3,b3,c3;
e=a*100+b*10+c;
a3=a*a*a;
b3=b*b*b;
c3=c*c*c;
a=1;
while(a<=9)
{
b=0;
while(b<=9)
{
c=0;
while(c<=9)
if(e-a3-b3-c3==0&&e>=100&&e<=999)
printf("%d=%d+%d

你有些语句位置放错了已帮你修改好了,可以通过运行
#include<stdio.h>
void main ()
{
int a,b,c,e,a3,b3,c3;

a=1;
while(a<=9)
{
b=0;
while(b<=9)
{

c=0;
while(c<=9)
{a3=a*a*a;
b3=b*b*b;
c3=c*c*c;
e=a*100+b*10+c;
if(e-a3-b3-c3==0&&e>=100&&e<=999)
printf("%d=%d+%d+%d\n",e,a3,b3,c3);
c++; }
b++;
}
a++;
}

}

我还有两种方法:(不过本质都一样)
1.
#include<stdio.h>
void main()
{
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\n",i*100+j*10+k);}
}
}

2.
#include <stdio.h>
main