| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1786 人关注过本帖
标题:[求助]如何求出文本中哪些数相加等于指定的值
只看楼主 加入收藏
mhz1986
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-25
收藏
得分:0 

#include "stdio.h"
int data[]={4816,4776,4498,4616,4948,4684,4710,5266,4760,5168,4770,5134,5076,4784,
5174,4732,4782,4746,4730,5224,5164,4742,4724,4730,4762,4162,4188,4830,4942,4072,
4270,4520,4808,5130,4272,4262,4238,4240,4828,4168,4754,4720,4896,4824,5206,4322,
3800,4826,4632,5104,5134,4838,3858,5008,4828,5234,4324,5282,5348,5150,4724,4682,
4720,5218,4744,4742,4760,5194,4792,4712,4754,4704};
int stack[72],top,aim;
void out()
{
int i;
for (i=0;i<top;i++)
{
printf("%d ",stack[i]);
}
printf("\n");
}
void dfs(int now,int forstart)
{
int i;
if (now==aim)
{
out();
return ;
}
for (i=forstart;i<72;i++)
{
if (now+data[i]<=aim)
{
stack[top++]=data[i];
dfs(now+data[i],i+1);
top--;
}
}
return ;
}
int main()
{
while (scanf("%d",&aim))
{
top=0;
dfs(0,0);
}
return 0;
}


2007-03-13 19:01
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
楼上太有才了

2007-03-13 19:15
mhz1986
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-25
收藏
得分:0 

这道题还有一种解法,穷举发...貌似二进制算法

2007-03-13 20:51
csight
Rank: 1
等 级:新手上路
威 望:1
帖 子:293
专家分:0
注 册:2006-6-11
收藏
得分:0 
#include<iostream.h>
#include"stdio.h"
#define LEN 10
#define NUM 30
int loc=LEN-1;
int a[LEN]={10,20,15,30,28,29,2,15,12,1};
char s[LEN]={'0','0','0','0','0','0','0','0','0','0'};
void Deal_S()
{
int sum=0;
for(int i=0;i<LEN;i++)
{
if(s[i]=='1')
sum+=a[i];
}
if(s[loc]=='1') {loc--;}
if(sum==NUM) ; /*结果处理 */
}
void Increase_S()
{
int i;
for(i=0;i<LEN;i++)
{
if(s[i]=='0'){s[i]='1';break;}
s[i]='0';
}
Deal_S();
}
int main()
{
while(loc>0)
Increase_S();
return 0;
}


头可断,发型不可乱;血可流,皮鞋不可不擦油;
2007-03-13 21:02
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
11楼的哥们说说你的程序怎么用啊?要输入的是什么?

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-13 21:08
mhz1986
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-25
收藏
得分:0 

要输入的是像题目里面的目标数,就是几个数加起来等于的这个数...

2007-03-13 21:18
mhz1986
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-25
收藏
得分:0 
要输入的是像题目里面的目标数,就是几个数加起来等于的这个数...
2007-03-13 21:19
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
以下是引用mhz1986在2007-3-13 21:18:35的发言:

要输入的是像题目里面的目标数,就是几个数加起来等于的这个数...

那建议运行完如果没找到有个提示,就不用再等了啊


“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-13 21:21
csight
Rank: 1
等 级:新手上路
威 望:1
帖 子:293
专家分:0
注 册:2006-6-11
收藏
得分:0 
这里写得还都只是实现的算法;
不用具体到那么细;

头可断,发型不可乱;血可流,皮鞋不可不擦油;
2007-03-13 21:32
快速回复:[求助]如何求出文本中哪些数相加等于指定的值
数据加载中...
 
   



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

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