编写程序,输入两个正整数m 和n(1<=m,n<=1000),输出m ~ n 之间的所有满足各位数字的立

编写程序,输入两个正整数m 和n(1<=m,n<=1000),输出m ~ n 之间的所有满足各位数字的立方和等于它本身的数。输出格式中以1个空格分隔。

运行示例1:

输入:1 100

输出:1

运行示例2:

输入:1 200

输出:1 153

运行示例3:

输入:100 1000

输出:153 370
371 407

我的程序是

#include <stdio.h>

int main(void)

{ int m,n,g,s,b,i;

scanf
("%d %d",&m,&n);

for
(i=m;i<=n;i++);

{g=(i%10);

s=((i/10)%10);

b=(i/100);

if
(i==g*g*g+s*s*s+b*b*b);

printf("%d
",i);

}

return
0;

}
请问问题在哪

#include<stdio.h
int is(int number)
{
int s = 0,a = 0;
int b = number;
while(number)
{
 a = number % 10;
 s += a*a*a;
 number /= 10;
}
if(s == b)
return 1;
else 
return 0;
}
int main(void)
{
int m,n,i;
printf("Input m:");
scanf("%d",&m);
printf("Input n:");
scanf("%d",&n);
for(i=m;i<=n;i++)
if(is(i))
printf("%d\n",i);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-19

#include <stdio.h>

#include <stdlib.h>

int is(int number);

int main(void)

{   int m,n,y,result;

printf("m,n:");

scanf("%d%d",&m,&n);

y=is(result);

printf("%6d\n",y);

return 0;

}

int is(int number)

{

int result,i,a,b,c,m,n;

for(i=m;i<=n;i++)

{

a=i%10;

if(100<=i)

{

b=a%10;

c=i%100;

}

else

{   b=i/10;

c=0;

}

result=a*a*a+b*b*b+c*c*c;

if(i==result) return 1;

else return 0;

}

}

相似回答