問題
いくつかの空のプレートが保持できるように、同じプレートのM N番号、上の同じリンゴは、どのように多くの異なるポイントシステムを頼みますか?5,1,1および1,5,1点と同じ方法です。
エントリー
最初の行は、テストデータTの数である(0 <= T <= 20)。各行は、次の2つの整数含ま
M及びNは、スペースで区切られた番号。1 <= M、N <= 10。
輸出
データ入力の各セットのためのMとN、対応するラインK.の出力
サンプル入力
1
7 3
サンプル出力
8
問題解決のためのアイデア
I k番目の放電プレート法におけるリンゴの総数は、F(I、K)、次にであること:
K> I、F(I、K) = F(I、I)
K <= I、総吐出法=空のトレイ排出方法+無空のトレイ排出方法がある
F(I、K)= F (I、K-1)+ F(IK、k)は
#include <iostream>
using namespace std;
int f(int m,int n) {
if( n > m )
return f(m,m);
if( m == 0)
return 1;
if( n <= 0 )
return 0;
return f(m,n-1) + f(m-n,n);
}
int main() {
int t,m,n;
cin >> t;
while( t--) {
cin >> m >> n;
cout << f(m,n) << endl;
}
return 0;
}