华为OJ(放苹果)
2015-08-11 16:59
295 查看
对于m个苹果,n个盘子f(m,n):
如果m<n,那么就跟m个盘子,m个苹果是一样的f(m,m)。
如果m>n,那么有两种情况:一种有空盘子的情况,一种没有空盘子的情况,两种情况不重叠且加一起一定为情况总数。
第一种情况:m个苹果放在n-1个盘子里,因为至少有1个空盘子,即f(m,n-1)
第二种情况:每个盘子都至少有一个苹果,m-n个苹果再放到n个盘子里,即f(m-n,n)。
由上面两种情况得到递归式f(m,n)=f(m,n-1)+f(m-n,n)。
如果m<n,那么就跟m个盘子,m个苹果是一样的f(m,m)。
如果m>n,那么有两种情况:一种有空盘子的情况,一种没有空盘子的情况,两种情况不重叠且加一起一定为情况总数。
第一种情况:m个苹果放在n-1个盘子里,因为至少有1个空盘子,即f(m,n-1)
第二种情况:每个盘子都至少有一个苹果,m-n个苹果再放到n个盘子里,即f(m-n,n)。
由上面两种情况得到递归式f(m,n)=f(m,n-1)+f(m-n,n)。
#include<iostream> using namespace std; int place_apple(int m,int n); int main() { int m,n; cin>>m; cin>>n; cout<<place_apple(m,n)<<endl; //system("pause"); return 0; } int place_apple(int m,int n) { if(m==0||n==1) return 1; if(m<n) return place_apple(m,m); else return place_apple(m-n,n)+place_apple(m,n-1); }
相关文章推荐
- 谈谈陌陌争霸在数据库方面踩过的坑( Redis 篇)
- MySQL事务隔离
- odoo--connector
- 谈谈如何训练一个性能不错的深度神经网络
- 间隙锁相关问题:
- Linux rpm 命令参数使用详解[介绍和应用]
- POJ 2442 Sequence (STL优先队列)
- iOS学习笔记11-iOS应用国际化教程(2014版)
- android--gradle编译龟速?offline!
- 支付宝支付功能
- Activity生命周期学习笔记,和横竖切屏时候activity销毁时候保存数据和调用的方法
- leetcode 123 —— Best Time to Buy and Sell Stock III
- 单例模式的结构
- mybatis 与spring整合配置
- iOS开发——swift实现简单的全局键盘管理器
- (2015)最新破解企业QQ拦截个人QQ功能
- 去OpenCVManager,大部分为转载,仅当自己学习使用
- Undefined symbols for architecture i386: "_crc32", referenced from:——crc链接错误
- Cocos2d-x 3.4版本 新建项目 IOS版
- android app安装位置选择