设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 448|回复: 0
打印 上一主题 下一主题

背包问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 02:16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要解决的问题是这样的:假设箱子的容积是5,物体有4个,其体积分别为1,2,3,4问有多少种方法填充。那么结果应该是1,4  和2,3。下面的程序是书上的,但还是不对,请大家帮忙看看
#include<iostream>
using namespace std;
int *pout;
int mval;
int nval;
void calfun(int m,int n)
{
    if((m!=1&&n==1)||(m<1)||(n<1))
        return;
    if(m==n)

    {
        pout[n]=1;
        for(int i=1;i<=n;++i)
        {            
            if(pout[i])
            cout<<i<<" ";
        }
            cout<<endl;
            pout[n]=0;
    }
    calfun(m-n,n-1);
    pout[n]=0;

    calfun(m,n-1);
    pout[n]=1;

   
}
void main()
{
    cin>>mval;
    cin>>nval;
    if(mval<nval)
        mval=nval;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 07:29 , Processed in 0.099232 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表