输出 m 到 n之间的所有满足各位数字的立方和等于它本身的数。

来源:百度知道 编辑:UC知道 时间:2024/06/16 18:46:36
我的答案:#include "stdio.h"
int main(void)
{
int i, digit, m, n, number, sum;
int repeat, ri;

scanf("%d",&repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
printf("result:\n");
for(i=m;i<=n;i++)
{
digit=i;number=i;
for(sum=0;digit!=0;digit=digit/10)
{
sum+=pow(digit-digit/10*10,3);
}
if(number==sum)
printf("%d\n",i);
}

}
}

输入100 400 为什么没有输出153?

可以输出153,这个程序需要输入至少个数字,第一个数字表明程序重复运行的数字(这里假设输入1),第二个数字和第三个数字才是指定下限和上限的,以下程序对原程序作了一些小的修正:

//---------------------------------------------------------------------------
#include <stdio.h>
#include <math.h>/*注意这里*/
int main(void)
{
int i, digit, m, n, number, sum;
int repeat, ri;

scanf("%d",&repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
printf("result:\n");
for(i=m;i<=n;i++)
{
digit=i;number=i;
for(sum=0;digit!=0;digit=digit/10)
{
sum+=(int)pow(digit-digit/10*10,3);/*注意这里*/
}
if(number==sum)
printf("%d\n",i);
}

}
return 0;
}
<