解题思路:

注意事项:

参考代码:

#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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论