| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 756 人关注过本帖
标题:求完数的一道题,帮忙看看哪错了?
只看楼主 加入收藏
sydyh43
Rank: 1
等 级:新手上路
帖 子:10
专家分:9
注 册:2009-6-17
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:10 
求完数的一道题,帮忙看看哪错了?
/*一个数如果恰好等于它的因子之和,
这个数就称为“完数”。例如6=1+2+3.
编程找出1000以内的所有完数。 */
//2009--7--23
#include <iostream>
using namespace std;
#define N 1000

int main()
{
    int i,n;
    int sum = 0;
     
    for(n = 2; n <= N; n++)
    {
          for(i = 1; i <= n - 1; i++)
          {
                if(n % i == 0)
                {
                     sum += i;
                }
          }
         
          if(sum == n)
          {
                 cout << n << endl;
          }
    }
    system("pause");
}
搜索更多相关主题的帖子: 编程 include 
2009-07-23 14:31
manti520
Rank: 1
等 级:新手上路
帖 子:16
专家分:8
注 册:2009-7-2
收藏
得分:2 
第一次循环语句里面加 sum = 0;
2009-07-23 15:33
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:6 
你的应该放在内层,要不然会一直累加的。。。
我改过之后得到3个结果:6,28,496
#include <iostream.h>
using namespace std;
#define N 1000

int main()
{
    int i,n;
    //int sum = 0;
     
    for(n = 2; n <= N; n++)
    {
        int sum = 0;
          for(i = 1; i <= n - 1; i++)
          {
                if(n % i == 0)
                {
                     sum += i;
                }
          }
         
          if(sum == n)
          {
                 cout << n << endl;
          }
    }
    system("pause");
}

编程之路无止境!
可是小子才入门!
2009-07-23 15:34
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:2 
呃。。。写漏了。。是int sum=0应该放在内层

编程之路无止境!
可是小子才入门!
2009-07-23 15:35
黯然神伤
Rank: 2
等 级:论坛游民
帖 子:18
专家分:39
注 册:2009-2-5
收藏
得分:2 
同意~~~sun,没一次循环后都该清零
2009-07-24 23:43
black423
Rank: 2
等 级:论坛游民
帖 子:36
专家分:65
注 册:2009-8-10
收藏
得分:0 
哈哈,这个程序我竟然能看得懂
2009-08-11 15:22
jianlingff
Rank: 1
等 级:新手上路
帖 子:5
专家分:9
注 册:2009-8-11
收藏
得分:0 
有个叫4399小游戏的网站
地址是:http://www.
里面的游戏超多啊
收到的鲜花
  • black4232009-08-15 15:02 送鲜花  -1朵   附言:不好
  • black4232009-08-15 15:10 送鲜花  -1朵   附言:广告/枪文
2009-08-11 21:53
shaozihaozi
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2009-5-5
收藏
得分:0 
头文件有问题,重复了

[ 本帖最后由 shaozihaozi 于 2009-8-12 19:53 编辑 ]
2009-08-12 19:49
zg116
Rank: 1
等 级:新手上路
帖 子:4
专家分:8
注 册:2009-7-13
收藏
得分:8 
#include <iostream>
using namespace std;
#define N 1000
 
int main()
{
    int i,n;
      
    for(n = 2; n <= N; n++)
    {
          int sum = 0;

          for(i = 1; i <= n - 1; i++)
          {
                if(n % i == 0)
                {
                     sum += i;
                }  
          }
           
          if(sum == n)
          {
                 cout << n << endl;
          }
    }
    system("pause");
}
把sum=0放到循环里面,每次执行都要清下零
2009-08-12 22:07
小小编号
Rank: 1
来 自:山东
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-8-12
收藏
得分:0 
........我原来也有这样的错误 赋值的地点放错了  sum放循环内层

路是自己走出来的
2009-08-12 22:14
快速回复:求完数的一道题,帮忙看看哪错了?
数据加载中...
 
   



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

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