描述

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?

(用K表示)5,1,1和1,5,1 是同一种分法。

输入

第一行是测试数据的数目t(0 <= t <= 20)。

以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

输出

对输入的每组数据M和N,用一行输出相应的K。

样例输入

1

7 3

样例输出

8

我の思考

这个问题用递归的思维来做,我们需要明确,它应该有两个参数,一个是苹果的数量m,一个是盘子的数量n。

然后我们再根据m与n的比较来划分情况,注意,它的重复条件。

1.当m>n(苹果更多)时,每个盘子肯定至少有一个苹果,所以我们需要考虑的就是如何把m-n个苹果放入n个盘子里面。

2.当m<n(盘子多)时,这时候其实就相当于要把m个苹果放入m个盘子里。

3.当m=n(苹果和盘子一样多时),我们可以分为每一个都放一个苹果,也就是1次,还有当空出盘子放的情况。

我の代码

#include <iostream>
using namespace std;int func(int m,int n){if(n==0 || m==0){return 0;}if(n==m){return 1+func(m,n-1);}if(m<n){return func(m,m);}if(m>n){return func(m-n,n)+func(m,n-1);}
}int main()
{int k=0;cin>>k;while(k){int n,m;cin>>m>>n;cout<<func(m,n)<<endl;k--;}return 0;
}

我の小结

这类题目应该首先确定好参数的数量,再想办法找出参数之间的关系组成,从而的到答案。



转载于:https://www.cnblogs.com/rimochiko/p/7499089.html

(递归)666:放苹果相关推荐

  1. 程序设计与算法----递归之放苹果问题

    问题描述 例题:放苹果 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问公有多少种不同的分法?5,1,1和1,5,1是同一种分法 输入 第一行是测试数据数目t(0<=t<=2 ...

  2. 666:放苹果 —— C++

    描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 输入二个整数M和N,以空格分开.1<=M,N& ...

  3. 递归--练习4--noi666放苹果

    递归--练习4--noi666放苹果 一.心得 写出状态后勇敢假设 二.题目 666:放苹果 总时间限制:  1000ms 内存限制:  65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允 ...

  4. 2.3 基本算法之递归变递推 放苹果 python

    http://noi.openjudge.cn/ch0203/666/ """ 2.3 基本算法之递归变递推 666 放苹果 http://noi.openjudge.c ...

  5. POJ1664 放苹果【递推+记忆化递归】

    放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 35209   Accepted: 21792 Description ...

  6. 算法一:递归(包含Hanoi问题、N皇后问题、逆波兰表达式、爬楼梯、放苹果、全排列)

    递归 递归在算法中具有很重要的地位,也是很多学习编程的初学者非常头疼的问题,看我的这篇文章,希望能为还处于迷雾中的你带来希望 首先我们要知道递归的作用: 1.可替代多重循环 2.解决本来就是用递归形式 ...

  7. java递归分苹果_递归应用示例(放苹果)[较难 选听]

    ok,下面我们再看一个例子. 这个例子呢比较有意思. 这个例子名字叫放苹果.这是open jar 的上面比较经典的一道题目. 我们来看一下这个题目.说啊,有M个同样的苹果. 这M个苹果呢一模一样没有区 ...

  8. 机试:放苹果(递归问题)

    通过者的解读 设dp(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论,         当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响.即if(n>m ...

  9. poj1664:放苹果问题(递归)

    poj1664:放苹果:http://poj.org/problem?id=1664 咱们设苹果的个数为m个,盘子的个数为n个. 第一种情况: 如果苹果只有一个或者零个,即m=1或m=0,此时只有一种 ...

  10. 放苹果(C语言-递归)

    把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t < ...

最新文章

  1. docker入门及安装
  2. HighNewTech:带你解读云计算、雾计算(Fog Computing)、边缘计算(Edge Computing)的前世今生
  3. C语言实现面向对象示例
  4. Python的运算符与表达式
  5. 卡尔曼滤波原理理解(1)
  6. vscode 新版eslint自动修复_程序员请收好:10 个实用的 VS Code 插件
  7. 1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比)...
  8. Android木马病毒com.schemedroid的分析报告
  9. Pcblayout——立创EDA
  10. ASIC设计流程简介
  11. C++数据结构——栈
  12. 百度AI开放平台 UNIT平台开发在线客服 借助百度的人工智能如何开发一个在线客服系统...
  13. 熔断机制什么意思_什么是熔断机制 熔断机制是什么意思
  14. 华为AR系列路由器密码重置
  15. IoT原型开发利用现成的单板设计---凯利讯半导体
  16. PostgreSQL 如何实现数据透视表
  17. 笔记之零基础入门金融风控-贷款违约预测
  18. 计算机游戏是什么意思,端游是什么意思啊,吃鸡端游是什么意思啊
  19. VirtualBox安装Ubuntu20.04 + 安装增强功能
  20. 牛客暑假多校第二场 K carpet

热门文章

  1. jupyter notbook远程连接配置(Ubuntu16.04)
  2. Pandas数据框索引函数 iloc、loc和ix学习使用
  3. python交互式shell之jupyter notebook初步安装使用
  4. 数据挖掘著名学者的网站
  5. latex 公式去掉不要编号
  6. DevOps使用教程 华为云(11)git分支怎么用 分支合并 评审
  7. linux suse 安装redis,redis 集群安装问题 【SUSE Linux Enterprise Server 11 SP3】
  8. (二)UML语言概述
  9. qtvs添加qchart_如何使用Qt Designer在窗体中插入QChartView?
  10. dcm4chee汉化_docker dcm4chee