华为OJ:2041 放苹果
来源:互联网 发布:mac os x sierra下载 编辑:程序博客网 时间:2024/05/17 23:07
这道题难点不在于代码怎么写,而是思路怎么想。感觉一般这种题要么你理好一个思路要么你最后总结出一个公式,要么你自己模拟它的运作方式,用迭代,或者递归的方式来做。有点像我们以前学的排列组合。
对于m个苹果,n个盘子f(m,n),如果苹果个数比盘子少,那么就跟n个盘子,n个苹果是一样的f(n,n)。如果m比n大,那么有两种情况,一种有空盘子的情况,一种没有空盘子的情况,两种情况不重叠且加一起一定为情况总数。第一种情况就即为n个盘子放在m-1个盘子里,因为至少有个空盘子。f(m,n-1),第二种情况下,每个盘子都有一个苹果了,就相当于f(m-n,n),m扣掉n个苹果再放到n个盘子里。得到递归式f(m,n)=f(m,n-1)+f(m-n,n)。
import java.util.Scanner;public class MNAPPPLE {public static int fways(int m,int n){if(m==0||n==1)return 1;if(m<n)return fways(m,m);else return fways(m,n-1)+fways(m-n,n);}public static void main(String args[]){Scanner input=new Scanner(System.in);int m=input.nextInt();int n=input.nextInt();System.out.println(fways(m,n));}}
0 0
- 华为OJ:2041 放苹果
- 【华为oj】放苹果
- 华为oj 放苹果
- 华为oj 放苹果
- 【华为 OJ】 放苹果
- 【华为OJ】放苹果
- 华为OJ:放苹果
- 华为OJ放苹果
- 华为OJ(放苹果)
- 【华为OJ】【080-放苹果】
- 华为OJ 初级:放苹果
- 华为oj初级 放苹果
- 华为OJ——放苹果
- 华为OJ放苹果&&整数划分
- 华为OJ——放苹果
- 华为OJ训练之0026-170108-放苹果
- 华为oj_放苹果
- 华为上机--放苹果
- Sublime Text 2 快捷键
- 工作之外的收入来源
- 获取手机分辨率及单位转换
- 如何建立一个更大的四扫
- 获取文件夹大小:
- 华为OJ:2041 放苹果
- Evaluate Reverse Polish Notation
- nyoj42(一笔画问题)
- 如何应对股市波动
- 如何平衡的紧张关系在一台缝纫机
- iOS实现图片的缩放和居中显示
- OJC++实现最大数的输出
- 如何将子弹分在你的网上文章投稿
- 如何完成你的海盗服装的奇装异服方