输入两个正整数m和n(m≥1,n≤1000),输出m到n之间的所有水仙花数。

输入两个正整数m和n(m≥1,n≤1000),输出m到n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。例如,153的各位数字... 输入两个正整数m和n(m≥1,n≤1000),输出m到n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。例如,153的各位数字的立方和是13+53+33 =153。
#include<stdio.h>
#include<math.h>
int main(void)
{
int m,n,i,sum,a;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
sum=0;
for(i=m;i<=n;i++){
a=i;
do{
sum=sum+pow(a-10*(a/10),3);
a=a/10;
}while(a!=0);
if(i==sum){
printf("%d\n",i);
}
}
return 0;
}
我不知道错哪了,虽然我后来换了一种方法对了,可是还是奇怪这一种为什么没有输出……求解
展开
 我来答
jacyhoneyy
推荐于2017-12-15 · TA获得超过106个赞
知道答主
回答量:45
采纳率:0%
帮助的人:42.4万
展开全部
#include<stdio.h>
#include<math.h>
int main(void)
{
int m,n,i,sum,a;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
//int sum ;
for(i=m;i<=n;i++){
a=i;
sum=0;//下一个数,sum要重新回零咯 ,找的我晕啊~
/*假设是153-153(没错)
do{

sum=sum+pow(a-10*(a/10),3);//获取个位上的数字
a=a/10;
}while(a!=0);
第一次:sum=sum+pow(a-10*(a/10),3);//获取个位上的数字 153-10*15 sum = 0+pow(3,3)
第二次:a = 15 sum=sum+pow(a-10*(a/10),3);//获取个位上的数字 15-10*1 sum = 9+pow(5,3)
第三次:a = 1 sum=sum+pow(a-10*(a/10),3);//获取个位上的数字 1-10*0 sum = 9+125+pow(1,1)
*/
do{
sum=sum+pow(a-10*(a/10),3);//获取个位上的数字
a=a/10;
}while(a!=0);
//printf("sum = %d\n",sum);//加个输出语句监听 发现 了错误!!
if(i==sum){
printf("%d\n",i);
}
}
return 0;
}
//同学,求采纳 ,呵呵 我可是认真 分析了很久
爱上夜色深沉
2012-04-20 · TA获得超过459个赞
知道小有建树答主
回答量:377
采纳率:100%
帮助的人:343万
展开全部
#include<stdio.h>
#include<math.h>
int main(void)
{
int m,n,i,sum,a;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
for(i=m;i<=n;i++){
sum=0;
a=i;
do{
sum=sum+pow(a-10*(a/10),3);
a=a/10;
}while(a!=0);
if(i==sum){
printf("%d\n",i);
}
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
e世同人
2018-04-03 · TA获得超过830个赞
知道小有建树答主
回答量:229
采纳率:87%
帮助的人:89.3万
展开全部

输入自己写。

for(int i=m; i<=n; i++){
    int a,b,c;
    a=i/100;
    b=i/10%10;
    c=i%10;
    if(a*a*a+b*b*b+c*c*c==i){
        //一个结果
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
倾城不及你笑颜Ee
2012-04-20 · 超过11用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:26.6万
展开全部
sum在循环中没有确保每次的循环时初值都为0,当m和n都是153是可以的,有个范围就会有影响了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式