解法

root 2025-02-09 20:34:42 2025-02-09 20:43:46

#include <bits/stdc++.h>

using namespace std;

int j,n;

int b[100];

double w[100];

int main()

{   

    double beibao;

    // 背包的重量, 物品的个数

    cin>>beibao>>n; // 10 6

    // 循环输入物品的每件重量

    for (int i = 1; i <= n; i++)

    {

        cin>>w[i];

    }

    

    double sum,maxv=0;

    while(b[0]==0){

        j = n;

        while (b[j] == 1){

            b[j] = 0;

            j--;

        }

        b[j] = 1;

        // 计算物品总重量

        sum = 0;

        for (int i = 1; i <=n; i++)

        {

            sum += b[i] * w[i];

        }

        if (sum <= beibao and sum >= maxv) maxv = sum;

    }

    cout<<maxv;

    return 0;

}