解题思路:
注意事项:
参考代码:
#include <stdio.h>
long long ww(int M, int N); // 指定返回类型为 long long
int main() {
int t;
scanf("%d", &t); // 读取测试数据的数目
while (t--) {
int M, N;
scanf("%d%d", &M, &N); // 读取每组数据M和N
printf("%lld\n", ww(M, N)); // 输出结果
}
return 0;
}
long long ww(int M, int N) {
// 基本情况:没有苹果或只有一个盘子
if (M == 0 || N == 1)
return 1;
// 如果盘子比苹果多,那么最多只能有M个盘子被使用
if (N > M) {
return ww(M, M);
}
// 递归步骤:至少有一个空盘或者无空盘
return ww(M , N-1) + ww(M-N, N );
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复