zoukankan      html  css  js  c++  java
  • 1.整数划分-递归

    //对于一个正整数n的划分,就是把n变成一系列正整数之和的表达式。注意,分划与顺序无关,例如6=5+1跟6=1+5是
    //同一种分划。另外,单独这个整数本身也算一种分划。
    //例如:对于正整数n=5,可以划分为:
    //1+1+1+1+1
    //1+1+1+2
    //1+1+3
    //1+2+2
    //2+3
    //1+4
    //5
    #include <iostream>
    using namespace std;

    int huafen(int n, int m){
        if(n == 1 || m == 1)
            return 1;
        else if(n > m)
            return huafen(n, m - 1) + huafen(n - m, m); //划分中包含m的情况,即{m, {x1,x2,...xi}}, 其中{x1,x2,... xi} 的和为n-m,因此这情况下为f(n-m,m)
        else if(n < m)
            return  huafen(n, n);
        else if(n == m){
            return 1 + huafen(n, m - 1);
        }
    }
    //http://blog.csdn.net/u013197555/article/details/48436947
    int main(){
        int n;
        cin >> n;
        cout <<    huafen(n, n);
        return 0;
    }

  • 相关阅读:
    前端小tite(随笔)
    算法两数之和 python版
    常用标签
    pip install 遇到的问题
    不常用的模块
    约束和约束关系
    Django初识
    前端—Bootstrap
    前端—jQuery
    前端—BOM和DOM
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/7279801.html
Copyright © 2011-2022 走看看