文章出處

// 0.1背包求解.cpp : 定義控制臺應用程序的入口點。
//
#include "stdafx.h"
#include <iostream>  
#define N 5  
#define ST 10  
using namespace std;
int main() {
 //給定n個重量,價值為不同的個物品和容量為c的背包,求這些物品中一個最有的價值的子集  
 int a[N] = { 2, 1, 3, 4, 7 };
 int b[N] = { 2, 5, 4, 1, 2 };
 int sum1 = 0;//sum1表示最終的價值  
 for (int i = 0; i<N; i++)//這是對每次的  
 {
  int STS = 0;//金子的總個數  
  int QS = 0;//價值的總個數  
  for (int j = 0; j<N; j++)
  {
   if (STS + a[i]<ST)//如果金子每放完,則繼續放  
   {
    cout << "金子個數:" << a[j] << "    ";
    cout << "對應的價值為:" << a[j] * b[j] << endl;
    STS += a[j];
    QS += a[j] * b[j];
   }//否則則不進行  
  }//直到這個循環結束后就出來求出總的價值  
  cout << "第" << i + 1 << "次的總價值為:" << QS << endl;
  cout << endl;
  if (QS>sum1)
  {
   sum1 = QS;
  }
 }
 cout << "蠻力法背包最大的價值為:" << sum1 << endl;
 return 0;
}
 

 

 


結語 
> 如果你還需要了解更多技術文章信息,請繼續關注白衣秀才的博客

個人網站:http://penglei.top/
Github:https://github.com/whitescholars
微博:http://weibo.com/u/3034107691?refer_flag=1001030102_&is_all=1


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()