整數劃分的遞迴實現演算法
阿新 • • 發佈:2019-01-10
輸入:輸入整數劃分的整數(只輸入一次,即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;
}