| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 531 人关注过本帖
标题:求大神帮忙讲解一个程序的小算法(本人新手)
只看楼主 加入收藏
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
结帖率:84.21%
收藏
已结贴  问题点数:5 回复次数:8 
求大神帮忙讲解一个程序的小算法(本人新手)
#include "stdio.h"
void main()
{

    int a,b,c=0;
    printf("1000以内的完数有:");
    for(a>0;a<=1000;a++)
    {  
        c=0;
        for(b=1;b<a;b++)
        {
            if(a%b==0)
                c+=b;/*这是求完数的一个小程序*/有点看不懂这段是什么意思!!求帮忙讲解下
        }
         if(c==a)

             printf("%d",a);
    }
    printf("\n");
}
搜索更多相关主题的帖子: include 
2013-07-12 09:53
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:5 
if(a%b==0)
c+=b;意思是:如果a%b的余数为0,则执行c+=b;c+=b实际上就是c=c+b;
楼主若是不明白为什么,可以写一个小程序来测试这行代码,比如说:
程序代码:
#include<stdio.h>
void main()
{
    int a,b;
    printf("请输入两个数字:");
    scanf("%d%d",&a,&b);
    printf("您输入的两个数分别是:%d,%d\n",a,b);
    a+=b;//这里如果不是等同与a=a+b;的话,那么最后a的结果就不会是a+b;
    printf("a的值变为:%d\n",a);
}


 

思考赐予新生,时间在于定义
2013-07-12 10:14
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:0 
for(b=1;b<a;b++)是什么意思  c+=b  搞懂了 是c=c+b  谢谢了

这个怎么玩
2013-07-12 10:29
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
这是for循环,自己看书理解去,解释起来很费劲

思考赐予新生,时间在于定义
2013-07-12 10:41
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:0 
我知道for循环!!!主要是这个B为什么等于1和B<A这个循环的什么东西  不是很理解

这个怎么玩
2013-07-12 10:46
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
这是算法的需要。for(a>0;a<=1000;a++)这里定义了a为int类型,所以a从1开始一直到1000循环;你自己理解一下求完数的算法,我不知道完数是什么来的,没听说过这个名词,理解了求完数的算法,自然知道b为什么从1开始

思考赐予新生,时间在于定义
2013-07-12 10:54
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:0 
那B为什么小于A呢?  完数是能被整数整除的数相加=这个整数(大概这个意思)

这个怎么玩
2013-07-12 10:58
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
完全数
各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。
例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。
b肯定要小于a,你理解了上面的例子,你自然明白为什么要小于a。
楼主你有没有仔细思考过?理解完全数的概念吗?

思考赐予新生,时间在于定义
2013-07-12 11:18
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:0 
无地自容啊

这个怎么玩
2013-07-12 14:14
快速回复:求大神帮忙讲解一个程序的小算法(本人新手)
数据加载中...
 
   



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

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