poj 1664 放苹果——递归

http://acm.pku.edu.cn/JudgeOnline/problem?id=1664

还是没理解为什么这么做

 

#include<stdio.h>

int dg(int m, int n)
{
	if(m < 0)	return 0;
	if(m == 0 || n == 1)	return 1;
	return dg(m-n, n) + dg(m, n-1);
}

int main()
{
	int t, m, n;
	while(scanf("%d", &t) != EOF)
	{
		while(t--)
		{
			scanf("%d%d", &m, &n);
			printf("%d\n", dg(m, n));
		}
	}
	return 0;
}

原文地址:https://www.cnblogs.com/submarinex/p/1941249.html