1. 程式人生 > >整數劃分問題(遞迴)

整數劃分問題(遞迴)

給定一個整數n,和允許的最大和數,

求n的最多的劃分數。

#include<iostream>

using namespace std;


int dfs(int n,int m)
{
	if(n<1||m<1)return 0;
	if(n==1||m==1)return 1;
	
	if(m>n)return dfs(n,n);
	if(n==m)return 1+dfs(n,n-1);
	
	
	return dfs(n,m-1)+dfs(n-m,m);
}
int main()
{
	int n,m;
	cin>>n>>m;
	
	cout<<dfs(n,m)<<endl;;
	
	return 0;
 }