1. 程式人生 > >整數劃分的遞迴實現演算法

整數劃分的遞迴實現演算法

輸入:輸入整數劃分的整數(只輸入一次,即n==m)。
輸出:輸入整數的劃分個數值。
示例:輸入:7,輸出:15

q(n,m)的如下遞迴關係定義如下:
正整數n的劃分數p(n)=q(n,n)。

這裡寫圖片描述

#include <iostream>  
using namespace std;
int q(int n,int m)
{
    if (n==1||m==1)
    {
        return 1;
    }
    if (n<m)
    {
        return q(n,n);
    }
    if (n==m)
    {
        return
1 + q(n,n-1); } if (n>m&&n>1&&m>1) { return q(n, m - 1) + q(n-m,m); } } int main() { int n; cin >> n; int m = n; int c = q(n, m); cout << c; return 0; }