首先我们想象有一个函数count(m,n)可以把m个苹果放到n个盘子中。

根据 n 和 m 的关系可以进一步分析:

  特殊的m <=1|| n <= 1时只有一种方法;

  当 m < n时,即使苹果每个盘子放一个也没法放满所有盘子,题目允许有的盘子空着不放,所以我们可以将空盘子去掉,即 count ( m , n ) = count ( m , m );

  当 m >= n时,这时候有两种情况:

  n 个盘子中有一个空盘子,当有空盘子时,count ( m , n ) = count ( m , n - 1 );

  n个盘子中没有空盘子,当没有空盘子时也就是说每个盘子中至少有一个苹果,先把所有盘子填满,这时候会剩下 m - n 个苹果,所以现在问题变成了 m - n 个苹果放在 n 个盘子有多少种方法,即 count ( m - n , n )。

所以当m>=n时,放置苹果的总情况为 count ( m , n - 1 )+ count ( m - n , n )次。

  具体代码实现如下:

#include <iostream>
using namespace std;
int count(int m, int n)
{ if (m <=|| n <= )
return ;
if (m < n)
return count(m, m);
else
return count(m, n - ) + count(m - n, n);
}
int main()
{
int m, n;
cin >> m >> n; cout << count(m, n) << endl; return ;
}

最新文章

  1. 【2016-11-5】【坚持学习】【Day20】【Linq where in 语句】
  2. [SQL] SQL Server 触发器
  3. 为什么接口类型可以直接new?
  4. 自己写的表格插件autotable
  5. linux入门教程(四) 初步进入linux世界
  6. bzoj3932
  7. 51Nod 1753 相似子串
  8. 如何清理Docker占用的磁盘空间?(转载)
  9. 30.QT-渐变之QLinearGradient、 QConicalGradient、QRadialGradient
  10. 大杂烩 -- Iterator 并发修改异常ConcurrentModificationException
  11. git回滚命令reset、revert的区别
  12. yield 举例
  13. each遍历 的原理
  14. php中直接执行mysqli_init()也是报Property access is not allowed yet的错误。
  15. ref:CodeIgniter框架内核设计缺陷可能导致任意代码执行
  16. 使用用户自定义类型作为map的key
  17. 03慕课网《vue.js2.5入门》——Vue-cli的安装,创建webpack模板项目
  18. python文件打开的几种访问模式
  19. 配置cas可外网访问
  20. iOS -- 解决iOS11中navigationBar上使用initWithCustomView按钮图片错位 frame无效

热门文章

  1. CSS简介及基本知识
  2. requests.post发送字典套字典
  3. Struts(二十五):自定义验证器
  4. Java中的几种常用循环
  5. Python面向对象——内置对象的功能扩展
  6. 前端之旅HTML与CSS篇之IE6常见BUG
  7. [LeetCode] K Inverse Pairs Array K个翻转对数组
  8. 以 Angular 的姿势打开 Font-Awesome
  9. 机器学习基石:09 Linear Regression
  10. pdf如何转换为word文档