zoukankan      html  css  js  c++  java
  • 背包问题的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;
    }
  • 相关阅读:
    网络爬虫(抓取)正则表达式 (多线程协作)
    Asp.net 主题
    Asp.net 菜单控件
    CSS 布局Float 【4】
    CSS 布局Float 【3】
    CSS 布局Float 【2】
    CSS 布局Float 【1】
    CSS 布局Float 【0】
    Asp.Net 母版页
    Sql Server 远程过程调用失败
  • 原文地址:https://www.cnblogs.com/yoran/p/1084621.html
Copyright © 2011-2022 走看看