华为OJ:2041 放苹果

华为OJ:2041 放苹果

大家好,又见面了,我是全栈君。

这道题难点不在于代码怎么写,而是思路怎么想。

感觉一般这样的题要么你理好一个思路要么你最后总结出一个公式,要么你自己模拟它的运作方式,用迭代,或者递归的方式来做。

有点像我们曾经学的排列组合。

对于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));
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115697.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux 查看文件内容 显示行号

    linux 查看文件内容 显示行号怎么在linux系统中查看文件时显示行号?1.使用vi或者vim命令打开文件打开后的文件内容日如下2.直接输入以下命令,按Ente健显示文件行号:setnu或者:setnumber成功后显示如下…

  • ups不间断电源工作原理及应用说明_ups不间断电源供电方案

    ups不间断电源工作原理及应用说明_ups不间断电源供电方案小功率1-3KVAUPS不间断电源主要应用在IT设备,采用稳压稳频技术,校正电压,校正频率,保护计算机等设备不受损坏,更重要是保证数据不丢失,全面解决电网的各种问题,包括市电断电、电网浪涌、高压尖脉冲、暂态过电压、电压跌落、频率漂移、杂波干扰等等。下面科士达小编为大家介绍ups不间断电源工作原理及应用说明。    一、工作原理    1.当市电正常时,输入继电器RY2闭合,经升压

    2022年10月23日
  • 制作bt3启动盘_十大u盘启动盘制作软件

    制作bt3启动盘_十大u盘启动盘制作软件
    快速制作BT3U盘版
    方便,快捷简单
    无效不退款

    光盘版BT3,大概694MB,直接刻盘,然后用光盘引导,即可进入bt3,连接为:
    http://ftp.heanet.ie/mirrors/backtrack/bt3-final.iso

    U盘版Bt3,大概783MB,连接为:
    http://cesium.di.uminho.pt/pub/backtrack/bt3final_usb.iso
    <

  • 少儿编程scratch 教程下载(少儿编程scratch 教程)

    少儿编程管理系统的设计和所有网站设计一样,都是基于web端内网和外网的开发,而这里使用的工具是PHP。这里的外网就是学生端,是对外公开的。供学生观看教学视频,写作业和提交作业,创作作品和分享作品使用。内网就是教师端,不对外公开。供教师管理学生账号(修改信息,添加或删除),班级,作业(批量设置评语,批量提交作业给家长等),管理/山川课程和备课。(可以上传教学视频,可以上传学生文件,编辑课程介绍和插图、课件等。)学生端教师端系统为SaaS源码:可以拥有永久使用,没有门店和用户数量限制,数据加密.

  • 阿里云服务器开放端口如何设置_阿里云服务器8888端口

    阿里云服务器开放端口如何设置_阿里云服务器8888端口阿里云服务器开放端口阿里云服务器默认是只开放了部分端口,我们部署自己的服务需要监听一下80,8080等端口时,就需要自己设置安全策略,本文介绍如何设置阿里云的安全组,开放需要的端口步骤点击阿里云的的控制台点击进入云服务器点击进入安全组菜单,点击创建安全组按钮,添加一个新的安全组2.进入创建新安全组页面填写一下必要的信息,然后配置访问规则,包括入站和出站,点击手动添加一条,设置开放所有的端口,包括端口和授权对象,点击创建安全组按钮,将创建一条新的安全组出站我们也可以配置,默

  • http、https、ftp、talnet的默认端口号「建议收藏」

    http、https、ftp、talnet的默认端口号「建议收藏」http:80https:443(安全协议)ftp:21(文件传输协议)telent:23(远程控制登录协议)tomcat:8080mysql:3306redis:6379

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号