• 背包问题的c++解法


    其实说是c++解法,其实只是用了iostream库而已,方便打印。。。。
    发现自己其实很笨很笨,,,这么简单的问题也用了那么久,哎!
    #include <iostream>
    #include 
    <string>
    using namespace std;

    // 0-1背包问题:
    // 输入m, n 两个整数,从1n任取几个整数,使其和等于 m的可能有多少种?
    // 关键:同一个数不能出现2次
    void beibao(int m, int n, int arr[], int num)
    {
        
    for (int i = (m > n ? n : m); i > 0--i)
        {
            arr[num] 
    = i;
            
    if(m - i > 0)
                beibao(m 
    - i, i - 1, arr, num + 1);
            
    else if(m - i == 0)
            {
                arr[num 
    + 1= i;
                
    // print arr[]
                for (int j = 0; j < num + 1++j)
                    cout
    <<arr[j] << " ";
                cout
    <<endl;
            }
        }    
    }

    int main(int argc, char* argv[])
    {
        
    int arr[12= {0};
        beibao(
    1312, arr, 0);
        
    return 0;
    }
  • 相关阅读:
    Redis安装与配置
    Mysql主从复制
    MySQL的基本使用
    如何理解 python 里面的 for 循环
    我在创业公司的 “云原生” 之旅
    linux 安装 kafka
    数据库性能优化
    Shell 中各种括号的作用
    DNS 配置实例-正反解析-主从同步-分离解析
    DHCP 中继转发配置(ensp 实现)
  • 原文地址:https://www.cnblogs.com/yoran/p/1084621.html
Copyright © 2020-2023  润新知