哪位帮我改一下这道C++的题。。或重新写个新的。。。

来源:百度知道 编辑:UC知道 时间:2024/05/23 11:02:37
输入2个正整数m和n(1≤m,n≤1000),输出m~n之间的水仙花数(各位数字的立方和等于其自身的数)。 并调用函数 is(number)判断number的各位数字之立方和是否等于其自身。

#include<stdio.h>
#include<math.h>
int main(void)
{
int i,a,b,c,d;
int m,n;
printf("Enter m(m>=1):");
scanf("%d",&m);
printf("Enter n(n<=1000):");
scanf("%d",&n);

for(i=n;i<=m;i++)
{
a=i/1000;
b=(i-a*1000)/100;
c=(i-a*1000-b*100)/10;
d=i-a*1000-b*100-c*10;

if(i==(pow(a,3)+pow(b,3)+pow(c,3)+pow(d,3)))

printf("%d\n",i);
}
return 0;
}

我算不出结果。。 而且好象完全没有调用函数。。 谁帮我重新做一下啊。。

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

。。。应该用浮点float或者double类型,否则/1000就是0了。。

#include<stdio.h>
#include<math.h>
int main(void)
{
int i,a,b,c,d;
int m,n;
printf("Enter m(m>=1):");
scanf("%d",&m);
printf("Enter n(n<=1000):");
scanf("%d",&n);

for(i=n;i<=m;i++)
{
a=i/1000;
b=(i-a*1000)/100;
c=(i-a*1000-b*100)/10;
d=i-a*1000-b*100-c*10;

if(i==(pow(a,3)+pow(b,3)+pow(c,3)+pow(d,3)))

printf("%d\n",i);
}
return 0;
}
输入,输出如下:
注意:输入第一个数要大于第二个数
Enter m(m>=1):1000
Enter n(n<=1000):1
1
153
370
371
407
这个程序是求任意给定区间内的“水仙花数”即某个数=各位数学的立方和。、
上面结果就是求1到100之间的“水仙花数”

#include<stdio.h>
#include<math.h>
int main(void)
{
int m,n,a,b,s,i;