| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1065 人关注过本帖
标题:[求助]完数的输出格式问题
只看楼主 加入收藏
woo23778206
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-31
收藏
 问题点数:0 回复次数:6 
[求助]完数的输出格式问题
编写一个程序找出6-1000之内的所有完数,并安下面的格式输出:
6=1+2+3
我编写的程序如下:
main()
{
int i,j,sum=0,n;
for(i=6;i<=1000;i++)
{
for(j=1;j<=i;j++)
{
if(i%j==0) n=j;
sum+=n;
if(i==sum) printf("%d\n",i);
}
}
}
请各位看看对不对啊?
我想输出的格式是:
6=1+2+3
可是我不会啊,上面的程序也只能输出所有的完数
请各位大虾帮帮忙啊
搜索更多相关主题的帖子: 格式 输出 
2007-11-06 22:01
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
for(i=6;i<=1000;i++)
{
sum=0;
k=0;
for(j=1;j<=i/2;j++)
{
if(i%j==0)
{
data[k++]=j;
sum+=j;
}
}
if(sum==i)
{
printf("%d=1",i);
for(t=1;t<k;t++)
{
printf("+%d",data[t]);
}
}
}

倚天照海花无数,流水高山心自知。
2007-11-06 22:26
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

搂主 程序也有点问题

[此贴子已经被作者于2007-11-6 22:45:02编辑过]


—>〉Sun〈<—
2007-11-06 22:28
woo23778206
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-31
收藏
得分:0 
能不能具体说明一下啊,那里有问题,本人特愚钝,还望解释一下啊,另外能不能不用数组啊,我们还没有学啊,
看不懂,在此先谢谢各位了
2007-11-07 12:41
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

#include <stdio.h>
#define MAX 1000

int main(void)
{
int i, j, sum;

for(i = 2; i <= MAX; i++)
{
sum = 0; /* 这里因让 sum ,变为0 */

for(j = 1; j <= i / 2; j++)
/* 这里是 j <= i / 2 ,
这样可以减少循环的次数。
j 必须小与i,不能等于i。
因子就是所有可以整除这个
数的数,但是不包括这个数自身。
比如15的因子是 1,3,5。
*/
{
if(i % j == 0)
sum += j;
}

if(i == sum) /* 这个 if 应放在循环的外面 */
printf("%d\n", i);
}

getchar();
return 0;
}


/*

1000 以内有3个完数。

6
28
496

*/

[此贴子已经被作者于2007-11-8 13:57:46编辑过]


—>〉Sun〈<—
2007-11-07 13:24
woo23778206
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-10-31
收藏
得分:0 
上楼的先谢谢了啊,但是我要的输出格式,你没有给啊,麻烦你在说一下啊,例如6吧
让他以以下格式输出
6=1+2+3
2007-11-08 13:37
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用woo23778206在2007-11-8 13:37:11的发言:
上楼的先谢谢了啊,但是我要的输出格式,你没有给啊,麻烦你在说一下啊,例如6吧
让他以以下格式输出
6=1+2+3



#include <stdio.h>
#define MAX 100000
#define SIZE 1000

int main(void)
{
int i,
j,
sum,
n,
temp[SIZE] ={0};

for(i = 2; i <= MAX; i++)
{
for(j = 1, sum = n = 0; j <= i / 2; j++)
{
if(i % j == 0)
{
if(n >= SIZE)
{
printf("数字%d的因子超过%d!\n", i, SIZE);
break;
}
temp[n++] = j;
sum += j;
}
}

if(i == sum)
{
printf("%d=%d", i, temp[0]);
for(j = 1; j < n; j++)
printf("+%d", temp[j]);
putchar('\n');
}
}

printf("Done.");
getchar();
return 0;
}

[此贴子已经被作者于2007-11-8 14:14:18编辑过]


—>〉Sun〈<—
2007-11-08 14:12
快速回复:[求助]完数的输出格式问题
数据加载中...
 
   



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

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