【递归】放苹果

问题 : 【递归】放苹果

题目描述

楚继光刚把油拿到厨房,老妈又大声喊道:“快去把苹果洗了放到盘子里去。”

楚继光要把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5、1、1和1、5、1 是同一种分法。

输入

第1行为一个整数,表示测试数据的数目(测试数据的数目t(0 ≤ t ≤20),第2行为M和N(M和N,以空格分开。1≤M,N≤10)。

输出

输出有多少种不同分法。

样例输入

1
7 3

样例输出

8

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

const int N = 2;
int slove(int m, int n){
    if(m == 0 || n == 1) return 1;
    if(m < n ) return slove(m,m);
    return slove(m-n, n)+slove(m,n-1);

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

时间: 2024-08-09 10:38:57

【递归】放苹果的相关文章

北京大学 程序设计与算法(二)递归 放苹果

例题:放苹果 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分发?5,1,1和1,5,1是同一种分发. 输入 第一行是测试数据的数目t(0<=t<=20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. 输出 对输入的每组数据M和N,用一行输出相应的K 样例输入 1 7 3 样例输出 8 思路: 设i个苹果放在k个盘子里放法总数是f(I,k),则: k>i时,f(i,k)=f(i,i) k<=i时,总放法=有盘子为空的放

放苹果(递归)

Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. Output 对输入的每组数据M和N,用一行输出相应的K. Sample Input 1 7 3 Sample Output 8 代码: #include <iostream> #i

poj1664 放苹果(递归)

转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj.org/problem?id=1664 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. Out

递归训练-放苹果

问题 C: [基础]放苹果 [递归] 时间限制: 1 Sec  内存限制: 128 MB提交: 345  解决: 193[提交][状态][讨论版] 题目描述 描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 输入 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. 输出 输出 对输入的每组数据M和N,用一行输出相应的K

poj 1664 放苹果 递归

题目链接: http://poj.org/problem?id=1664 题目描述: 有n个苹果,m个盒子,盒子和苹果都没有顺序,盒子可以为空,问:有多少种放置方式? 解题思路: 当前有n个苹果,m个盒子. (1):假设当前最少的盒子放置一个苹果,则给m个盒子分别放一个苹果,剩下n-m个苹果. (2):假设当前最少的盒子不放苹果,则剩m-1个box,n个苹果. 代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <c

POJ 1644 放苹果 递推 递归

放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 28356   Accepted: 17939 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. Output 对

oj放苹果

题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 每个用例包含二个整数M和N.0<=m<=10,1<=n<=10.<=n<=10<=m<=10 样例输入 7 3 样例输出 8 分析: 假设对于m个苹果,n个盘子共有apple(m,n)种方法,那么要想办法递归将m,n的值减小,首先设置递归条件,当m<=1或者n<=1时,apple(m,n)=1:

放苹果问题

Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. Output 对输入的每组数据M和N,用一行输出相应的K. Sample Input 1 7 3 Sample Output 8 Source [email protected] 解题思路:笔者

H - 放苹果

Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit Status Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. Ou