放苹果
来源:互联网 发布:域名污染 gfw 编辑:程序博客网 时间:2024/06/02 12:38
输入两个int整数
输出结果,int型
import java.util.Scanner;public class Main{ public static void main(String[] args){Scanner sca = new Scanner(System.in);int m = sca.nextInt();int n = sca.nextInt();sca.close();int result = count(m,n);if(result == -1){return;}System.out.println(result);}/** * 计算放苹果方法数目 * 输入值非法时返回-1 * 1 <= m,n <= 10<><= m,n <= 10<> * @param m 苹果数目 * @param n 盘子数目数 * @return 放置方法总数 * */ public static int count(int m, int n) { if((m < 0)||(m > 10)||(n < 1)||(n > 10)) { return -1; } return getResult(m,n); } public static int getResult(int m, int n) { //当苹果味0或者盘子只有一个的时候,就只有一种放法 if(m==0||n==1) return 1; //盘子数多于苹果数的时候,多于的盘子不会对分法产生影响,所以可以直接去掉,取较小的苹果数量来求 if(n>m) return getResult(m,m); //盘子数少于苹果数的时候,可以分为至少有一个盘子空着,则为getResult(m,n-1)(去掉空盘子数量);没有盘子空着则可以在每个盘子拿走一个苹果,对分法没//有影响为getResult(m-n,n) else return getResult(m,n-1)+getResult(m-n,n); }}用到的是递归算法,对递归算法很不敏感,这个算法是在网上找到的,看了算法就容易想到递归了;虽然之前也想过用递归,但是构建不起来……
0 0
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- 放苹果
- PinnedHeaderListView
- sys_privilege & object_privilege
- OC_Protocol(协议)
- 078. Hashing (25)
- error C1083: 无法打开包括文件:“streams.h”: No such file or directory
- 放苹果
- Android中的ListView及其优化(待续)
- <streams.h>头文件打不开
- 模拟实现Spring IoC功能
- Quartz.Net定时任务框架,实现灵活的定时任务
- Unity Manual之Rigidbody 刚体
- R语言抓取pm2.5数据绘制全国pm2.5分布图
- IO流笔记01
- Linux学习笔记:系统启动引导过程