|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 找出1000以内的完数,条件怎么不判断呢?结果怎么是3003?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1007
人关注过本帖
标题:
找出1000以内的完数,条件怎么不判断呢?结果怎么是3003?
只看楼主
加入收藏
zxrd1989
等 级:
新手上路
帖 子:53
专家分:0
注 册:2011-5-11
结帖率:
64.29%
楼主
收藏
问题点数:0 回复次数:14
找出1000以内的完数,条件怎么不判断呢?结果怎么是3003?
#include<stdio.h>
void main()
{
int a,b,c,d;
for(a=1;a<=1000;a++);
for(b=1;b<=1000;b++);
for(c=1;c<=1000;c++);
for(d=1;d<=1000;d++);
if(a<d&&b<d&&c<d&&a+b+c==d);
{
d=a+b+c;
printf("%d",d);
}
}
搜索更多相关主题的帖子:
3003
2011-05-17 09:22
举报帖子
使用道具
赠送鲜花
laigaoat2005
等 级:
业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
第
2
楼
收藏
得分:0
for语句后有个分号,分号是空语句,你的所有for循环都是循环的空语句,每后面的语句都没有循环。
2011-05-17 09:46
举报帖子
使用道具
赠送鲜花
hjywyj
等 级:
小飞侠
威 望:
3
帖 子:1114
专家分:2611
注 册:2010-4-14
第
3
楼
收藏
得分:0
int j,i,s=0;
for(i=1;i<1000;i++)
{s=0;for(j=1;j<i;j++)
{if(i%j==0)
s=s+j;}
if(s==i)
printf("%5d",s);}
2011-05-17 09:48
举报帖子
使用道具
赠送鲜花
zxrd1989
等 级:
新手上路
帖 子:53
专家分:0
注 册:2011-5-11
第
4
楼
收藏
得分:0
回复 2楼 laigaoat2005
#include<stdio.h>
void main()
{
int a,b,c,d;
for(a=1;a<=1000;a++)
for(b=1;b<=1000;b++)
for(c=1;c<=1000;c++)
for(d=1;d<=1000;d++)
if(a<d&&b<d&&c<d&&a+b+c==d)
{
d=a+b+c;
printf("%d",d);
}
}
现在成了无限循环
2011-05-17 09:54
举报帖子
使用道具
赠送鲜花
键盘农夫
等 级:
论坛游侠
帖 子:88
专家分:106
注 册:2011-5-5
第
5
楼
收藏
得分:0
回复 4楼 zxrd1989
不是无限循环
是循环次数太多
《狂人C:程序员入门必备》
2011-05-17 10:03
举报帖子
使用道具
赠送鲜花
zxrd1989
等 级:
新手上路
帖 子:53
专家分:0
注 册:2011-5-11
第
6
楼
收藏
得分:0
回复 5楼 键盘农夫
IF条件没有用啊?
2011-05-17 10:05
举报帖子
使用道具
赠送鲜花
墨竹
等 级:
论坛游民
帖 子:29
专家分:39
注 册:2011-5-16
第
7
楼
收藏
得分:0
完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)
而且你的算法有点问题,这样要循环1000^4次,时间太长
2011-05-17 10:30
举报帖子
使用道具
赠送鲜花
墨竹
等 级:
论坛游民
帖 子:29
专家分:39
注 册:2011-5-16
第
8
楼
收藏
得分:0
完数的因子个数也不一定只有3个
收到的鲜花
bccn_0516
于
2011-05-18 19:04
送鲜花
3朵 附言:我很赞同
2011-05-17 10:32
举报帖子
使用道具
赠送鲜花
墨竹
等 级:
论坛游民
帖 子:29
专家分:39
注 册:2011-5-16
第
9
楼
收藏
得分:0
#include<stdio.h>
void main()
{
int m,n,sum;
for(m=1;m<=1000;m++,sum=0)
{
for(n=1;n<=m/2;n++)
{
if(m%n==0)
{
sum=sum+n;
}
}
if(sum==m)
{
printf("%d\n",m);
}
}
}
2011-05-17 10:38
举报帖子
使用道具
赠送鲜花
键盘农夫
等 级:
论坛游侠
帖 子:88
专家分:106
注 册:2011-5-5
第
10
楼
收藏
得分:0
以下是引用
zxrd1989
在2011-5-17 10:05:15的发言:
IF条件没有用啊?
用了
问题是那不是判断完数的条件
《狂人C:程序员入门必备》
2011-05-17 11:10
举报帖子
使用道具
赠送鲜花
15
1/2页
1
2
快速回复:
找出1000以内的完数,条件怎么不判断呢?结果怎么是3003?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.046639 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved