小招喵跑步[java]
题目描述
小招喵喜欢在数轴上跑来跑去,假设它现在站在点n处,它只会3种走法,分别是:
1.数轴上向前走一步,即n=n+1
2.数轴上向后走一步,即n=n-1
3.数轴上使劲跳跃到当前点的两倍,即n=2*n
现在小招喵在原点,即n=0,它想去点x处,快帮小招喵算算最快的走法需要多少步?
输入描述:
小招喵想去的位置x
输出描述:
小招喵最少需要的步数
输入例子1:
3
输出例子1:
3
输入例子2:
1980
输出例子2:
14
思路-递归
设小招喵要去的位置为x,最小的步数为f(x),则f(x)满足如下关系:
1.f(0) = 0;
2.f(1) = 1;
且f(x)存在如下递推关系:
当x为偶数时,f(x) = f(x/2)+1;
当x为奇数时,f(x) = min(f((x-1)/2),f((x+1)/2))+2;
此外,还需考虑到x为负数的情况,转化为整数即可。
代码
import java.util.Scanner;public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);int n = in.nextInt();int n1 = (n>=0)?n:(0-n);System.out.print(minJump(n1));}private static int minJump(int n){if(n == 0) return 0;if(n == 1) return 1;if((n & 1) == 0){return 1+minJump(n >> 1);}else{return 2+Math.min(minJump(n >> 1),minJump((n+1) >> 1));}}
}
小招喵跑步[java]相关推荐
- 招商银行信用卡中心笔试编程题 - 小招喵跑步
题目 小招喵跑步 链接:https://www.nowcoder.com/questionTerminal/1177e9bd1b5e4e00bd39ca4ea9e4e216 来源:牛客网 小招喵喜欢在 ...
- 【牛客CMB2 小招喵跑步】
牛客CMB2 小招喵跑步 题目 解题思路 代码实例 运行代码 题目 小招喵喜欢在数轴上跑来跑去,假设它现在站在点n处,它只会3种走法,分别是: 1.数轴上向前走一步,即n=n+1 2.数轴上向后走一步 ...
- 诺基亚java游戏宠物孵化_就这两招让诺基亚Java游戏运行于其他品牌的手机上
就这两招让诺基亚 Java 游戏运行于其他品牌的手机上 佚名 [期刊名称] <数字通信> [年 ( 卷 ), 期] 2006(000)014 [摘要] Java 游戏是手机游戏中的主力军, ...
- 小猿圈讲解Java可以做什么?
前几天有个小伙伴问我学完Java可以做什么?对于大部分人只知道Java是编程语言的一种,但是具体的能做什么确不是很了解,针对这样的现象,小猿圈给大家讲解一下Java可以做什么? 1. 大数据 大数据领 ...
- 「SCOI2015」小凸想跑步 解题报告
「SCOI2015」小凸想跑步 最开始以为和多边形的重心有关,后来发现多边形的重心没啥好玩的性质 实际上你把面积小于的不等式列出来,发现是一次的,那么就可以半平面交了 Code: #include & ...
- 微信小程序商城 (后台JAVA)
微信小程序商城(Java版) 技术选型 1 后端使用技术 1.1 springframework4.3.7.RELEASE 1.2 mybatis3.4.1 1.3 shiro1.3.2 1.4 se ...
- Python_封装案例(小明爱跑步)
1.封装的特性和需求分析 封装是面向对象编程的一大特性, 我们在使用面向对象开发程序的时候, 第一步就应该现在需求分析, 然后根据明确的职责把不同的属性和方法封装到一个又一个抽象的类中, 之所以说是抽 ...
- Python中面向对象封装案例——小明爱跑步、摆放家具
文章目录 面向对象封装案例 目标 1. 封装 2. 小明爱跑步 2.1 小明爱跑步扩展 -- 小美也爱跑步 3. 摆放家具 3.1 创建家具 3.2 创建房间 3.3 添加家具 3.4 小结 面向对象 ...
- python入门笔记——面向对象基础1_5(小明爱跑步案例)
案例: 小明爱跑步:实际项目需求如下 ①小明体重 75.0 公斤 ②小明每次跑步 会减少0.5公斤 ③小明每次吃东西 会增加 1公斤 1.案例分析: 名字提炼法,小明--人类: 属性--体重 动词提炼 ...
- 小程序画布功能+JAVA用KUMO生成词云图片
小程序画布功能+JAVA用KUMO生成词云图片 KUMO git地址:https://github.com/kennycason/kumo 原理:利用Kumo生成词云,并转换成64位传到小程序,小程序 ...
最新文章
- 阿里云如何将服务器添加至跳板机,如何将服务器添加至jumpsever
- David与Vincent的博弈游戏[树型DP]
- Unity自定义事件相应区域
- java获取oracle表空间_Oracle 表空间使用情况查询与修改
- python画平面直角坐标系_Python之OpenGL笔记(20):画平面直角坐标系
- WPF--ContextMenu绑定命令的一个问题
- 计算机打印怎样添加PDF格式,电脑添加PDF虚拟打印机怎么将文件打印成PDF
- Unity 中文不显示问题
- [Linux] linux命令总结之dig命令
- Linux 删除分区
- 国内外汽车道路行驶工况数据
- Python3批量爬取指定微博中的图片
- 单峰数组求第k大算法
- 成都月嫂提醒你,宝宝的疫苗接种时间
- 考研复试面试专业问题
- 淘宝喵果总动员自动做任务脚本
- 【已解决】ERROR: ENOENT: no such file or directory,open
- 利用Python爬虫爬取网页福利图片
- python 九九乘法表 长方形_Python-九九乘法表
- 百度离线地图 2023年1月7日