标题:求助!一道算术题。。
只看楼主
C小菜
Rank: 1
等 级:新手上路
帖 子:109
专家分:3
注 册:2011-9-14
结帖率:66.67%
已结贴  问题点数:20 回复次数:3 
求助!一道算术题。。
题目是求100~999以内的“水仙花数”之和。
所谓的水仙花就是:一个三位数,其各位数字的立方和恰好等于该数本身。
例如:153=1*1*1+5*5*5+3*3*3

但是我运行后 没有反应 是怎么一回
程序代码:
#include <stdio.h>
#include <stdlib.h>
int sb(int a)
{
    int g,b,c,d;
    scanf("%d",&a);
    b=a%10;    //第三位
    c=a/10%10; //第二位
    d=a/100%10; //第一位
    g=b*b*b+c*c*c+d*d*d;
    return g;
}
    int main()
    {
        int number;
        int i=100,result=0,all=0;
        for(i=100;i<=999;i++)
        {
            result=result+i;
            if(result==sb(result))
            {
                all=all+result;
            }
      }
      printf("所有水仙花数的和为%d",all);
            return 0;
    }
事啊。。




搜索更多相关主题的帖子: 算术题 水仙花 
2011-11-08 19:39
C小菜
Rank: 1
等 级:新手上路
帖 子:109
专家分:3
注 册:2011-9-14
得分:0 
求助!
2011-11-08 19:45
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
得分:20 
sb函数里面不需要输入a的值,for循环里面,有错,这样写的话result随着i的增大,越来越大,就得不到所需要的结果
程序代码:
#include <stdio.h>
#include <stdlib.h>
int sb(int a)
{
    int g,b,c,d;
    
    b=a%10;    //第三位
    c=a/10%10; //第二位
    d=a/100%10; //第一位
    g=b*b*b+c*c*c+d*d*d;
    return g;
}
    int main()
    {
        int number;
        int i=100,result=0,all=0;
        for(i=100;i<=999;i++)
        {
            result=sb(i);
            if(result==i)
            {
                all=all+result;
            }
      }
      printf("所有水仙花数的和为%d",all);
            return 0;
    }
2011-11-08 19:53
C小菜
Rank: 1
等 级:新手上路
帖 子:109
专家分:3
注 册:2011-9-14
得分:0 
回复 3楼 luchar
哇。。恩 发现 错在哪了 。。3Q。。。
2011-11-08 19:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-354632-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.137092 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved