C++プッシュアルゴリズムのりんご


Description
M個の同じリンゴをN個の同じ皿の中に置いて、ある皿が空いていることを許して、何種類の異なる分け方がありますか?(Kで表す)5,1,1と1,5,1は同じ分法である.
Input
1行目は、テストデータの数t(0<=t<=20)である.以下の各行には、2つの整数MとNが含まれ、スペースで区切られています.1<=M,N<=10.
Output
入力されたデータMおよびNのセット毎に、対応するKが1行で出力される.
Sample Input
1
7 3

Sample Output
8

Description
M個の同じリンゴをN個の同じ皿の中に置いて、ある皿が空いていることを許して、何種類の異なる分け方がありますか?(Kで表す)5,1,1と1,5,1は同じ分法である.
Input
1行目は、テストデータの数t(0<=t<=20)である.以下の各行には、2つの整数MとNが含まれ、スペースで区切られています.1<=M,N<=10.
Output
入力されたデータMおよびNのセット毎に、対応するKが1行で出力される.
Sample Input
1
7 3

Sample Output
8
#include
int main()
{
	int i,j,k,n,m;
	int t;
	scanf("%d",&t);
	for(int o=1;o<=t;o++)
	{
		int f[101][101];
		scanf("%d%d",&m,&n);
		for(i=0;i<=m;i++)
			for(j=0;j<=n;j++)
			{
				if(i==0||j==1) f[i][j]=1;
				else
				{
					if(j>i) f[i][j]=f[i][i];
					else f[i][j]=f[i][j-1]+f[i-j][j];
				}
			}
		printf("%d
",f[m][n]); } return 0; }