koudai.cpp

来自「包含了01背包和非01背包两个程序!是我一次作业完成的」· C++ 代码 · 共 43 行

CPP
43
字号

//  我保证这次作业是我个人独立完成没有抄袭他人作业和代码

#include<iostream>
using namespace std;

int pocket[100];  // 记录背包 的大小

// 定义一个函数  计算是否有满足题意的被包 
int fun(int n,int m);

//  分别记录 背包的数目 和  最大的容量
int num,totle;

void main()
{
	//  设置数据
	cout<<"input the number of the pockets:";
	cin>>num;
	cout<<"input the totle weight :";
	cin>>totle;
	cout<<"input the weight of the pockets:";
	for(int i=0;i<num;i++)
		cin>>pocket[i];
	//  调用函数  并输出
	int t=fun(0,totle);
	if(t==0)
		cout<<"NO"<<endl;
	else 
		cout<<"YES"<<endl;
}
//  如果满足就返回 1  否则就返回0 
int fun(int n,int m)
{
	int k=0;
	//   当m   即背包的容量变为零时就要  返回
	if(m==0)
		return 1;
	//  否则就继续  添加物品
	for(int i=n;i<num;i++)
		if(pocket[i]<=m)
		 return	 k+=fun(i+1,m - pocket[i]);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?