//隨手寫一點吧!递归思想,考虑有无盘子空出的情况,1.有盘子则按每次盘子数量少一的情况,2.如果没有盘子空出也就意味着每个盘子都会最少存在一个果子
//当没有苹果了,或者只有一个盘子的时候,那就只有一种方法了就return 1即可。
//注意当盘子数量大于苹果的数量的时候最多放与苹果一致的数量。
#include
#include
using namespace std;
//(新手上车)一些不对的地方多多指教!
int f(int m ,int n){
//f(n,m) = 有盘子 + 没有空盘子;
if( m == 0 || n == 1){
return 1;
}
if(m < n) f(m,m);
else return f(m,n-1) + f(m - n,n);
}
int main()
{
int t;
cin >>t;
while(t--){
int n,m;
cin >>m >>n;
cout << f(m,n) <<endl;
}
return 0;
}
0.0分
2 人评分
矩阵乘法 (C++代码)浏览:1460 |
简单的a+b (C语言代码)浏览:596 |
哥德巴赫曾猜测 (C语言代码)浏览:2322 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1420 |
printf基础练习2 (C语言代码)浏览:746 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:780 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:660 |
JAM计数法 (C语言代码)浏览:670 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:498 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:538 |