/* *问题描述:把M个同样的苹果放到N个同样的盘子里面,问有多少种不同的算法? 注意:5 1 1和1 5 1是同一种放法 输入:输入一个整数表示有几行测试数据,下面每行分别输入M和N */ #include <iostream> using namespace std; int f(int m,int n) { if(m < n)//盘子数比苹果数多的情况 return f(m,m); if(m == 0)//没有苹果 return 0; if(n == 0)//没有盘子,就不放,一种算法 return 1; //苹果不少于盘子的情况 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; }运行结果:
新闻热点
疑难解答