题目描述

小Q从牛博士那里获得了一个数字转换机,这台数字转换机必须同时输入两个正数a和b,并且这台数字转换机有一个红色的按钮和一个蓝色的按钮:

当按下了红色按钮,两个数字同时加1。

当按下了蓝色按钮,两个数字同时乘2。

小Q现在手中有四个整数a,b,A,B,他希望将输入的两个整数a和b变成A,B(a对应A,b对应B)。因为牛博士允许小Q使用数字转换机的时间有限,所以小Q希望按动按钮的次数越少越好。请你帮帮小Q吧。

输入描述:

输入包括一行,一行中有四个正整数a,b,A,B,(1≤a,b,A,B≤10^9)。

输出描述:

如果小Q可以完成转换,输出最少需要按动按钮的次数,否则输出-1。

示例1

输入

100  1000  202  2002

输出

2

思路:乘法快,优先考虑乘法,然后加法,每次a,b小于A,B,再次递归,直至a==A,b==B或者a>A,b>B。

import java.util.Scanner;public class Tencent01 {public static void main(String args[]){Scanner in = new Scanner(System.in);String input = in.nextLine();String[] inputs = input.split(" ");int[] ins = new int[4];int times = -1;for (int i=0; i<4; i++){ins[i] = Integer.parseInt(inputs[i]);}if (ins[0]<1 || ins[0]>(10^9) || ins[0]>ins[2] || ins[1]<1 || ins[1]>(10^9) || ins[1]>ins[3] ||ins[2]<1 || ins[2]>(10^9) || ins[3]<1 || ins[3]>(10^9)){times = -1;} else {times = change(ins[0], ins[1], ins[2], ins[3]);}System.out.println(times);}public static int change(int a,int b,int A,int B){int time = 0;if (a == A && b == B){time = 0;} else {if (2*a < A && 2*b < B){time ++;time += change(2*a,2*b,A,B);}if (a+1 < A && b+1 < B){time ++;time += change(a+1,b+1,A,B);}if (a > A || b>B){time = -1;}}return time;}
}

腾讯笔试题之数字转换机相关推荐

  1. 【转】IT名企面试:腾讯笔试题(2)

    摘要:想要进入腾讯公司,面试笔试题是一定要有所准备的.那么这里我们总结了一些腾讯笔试题,例如:const的含义及实现机制等问题. 腾讯是国内数一数二的IT企业了.那么每年想要进入腾讯公司的应聘者也是络 ...

  2. android获取指针空间大小_腾讯笔试题:浅谈计算机中cpu位数和指针

    来一个腾讯笔试题 在刷题的时候看到了腾讯笔试题的这个问题 long a = (long)(((int *) 0) + 4);printf("%ld ",a); 请问输出 a 的值是 ...

  3. 【腾讯笔试题】2019年腾讯实习正式批移动端开发笔试题

    2019年腾讯实习正式批移动端开发笔试题 说明 不定项选择题 编程题 1.小Q与橙汁 题目描述 输入描述 输出描述 示例1 输入 输出 示例2 输入 输出 2.打怪兽 题目描述 输入描述 输出描述 示 ...

  4. 招银网络科技笔试题:数字分解

    之前都在leetcode刷题,有些文章直接保存到上面去了,这是今天做招银的测试题中的一个,先说一下题目的大概意思. 给定一个整数,要求输出关于这个整数的各种数字相加的组合: 1:0种 2:0种 3:3 ...

  5. 腾讯笔试题20210321

    一.链表树 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C/C++ 262144K,其他语言 524288K 64bit IO Format: %lld 题目描述 在牛牛所在的世界,链表是一 ...

  6. 腾讯笔试题_20220424

    前言 笔试一共五道编程题,满分是100分,时间是两个小时,可以跳题,使用的平台是牛客网,允许跳出界面使用本地IDE. 题目一:构建数字 给定n个长度均为m的数字字符串,从上往下构建成m个新的数,去掉前 ...

  7. 腾讯笔试题--微信红包

    本来这题没什么难度,不值得我写博客的,谁知道一个失误花了半小时才做出来.写下来告诫自己不要再犯错. 春节期间小明使用微信收到很多个红包,非常开心.在查看领取红包记录时发现,某个红包金额出现的次数超过了 ...

  8. 2019届华为秋招笔试题【数字反转相加】【消除重复数字】【仿LISP运算】

    数字反转相加 1.题目描述 请您写一个 reversoAdd函数,该函数根据输入的两个正整数a和b, 字按照高位在右边的方式反转后求和. 例如,reverseAdd(123, 456) == 321 ...

  9. 腾讯笔试题 如下代码,result变量的输出结果是多少

    链接:https://www.nowcoder.com/questionTerminal/fb01e2436c6d453abbbf9801f794165b?pos=102&mutiTagIds ...

  10. 与0xf2值相等的是python_腾讯笔试题涵盖的基础知识

    1.下列减少内存碎片的方法有哪些是正确的? 增加实际申请和释放的次数 频繁调用的子函数尽量使用栈内存 系统申请一大块内存,自己实现内存分配和释放,定时清理内存 降低虚拟内存的大小 解答: 答案2,3是 ...

最新文章

  1. 数据结构【图】—024最小生成树
  2. IPSEC ×××实验六:ASA SSL ×××
  3. Ubuntu常用翻译工具——星际译王StarDict
  4. sqlserver limit
  5. 背不下《道德经》,至少背下这10句精华!
  6. ASP.NET后台注册javascript脚本方法
  7. PHP 中华如何用命令连接数据库,教你如何用php pdo连接数据库
  8. 个别省通知!研究生推迟开学不停学!毕业答辩可采用远程视频方式
  9. 7k7k游戏盒与逗游游戏库,你更喜欢哪个
  10. NLP学习一 形式语言与自动机
  11. disabled与enabled是什么?disabled与enabled属性详解
  12. 机器学习 -- PCA(Ⅱ 梯度上升法解决主成分分析问题)
  13. 杭州云栖大会“弹性计算用户实践专场”等你来
  14. Docker入门笔记(1)
  15. python联机麻将_python麻将和牌算法
  16. 负载均衡进阶:SLB常见问题解决方法
  17. webpack配置详解一:mode模式
  18. 支付宝手机网站支付开发记录之结果异步通知
  19. 06-CSS盒模型详细阐述
  20. 【网络】应用层-HTTP协议

热门文章

  1. 详解二叉树的递归遍历与非递归遍历
  2. MATLAB——数据类型
  3. 马尔可夫链(Markov chain)的基本认识
  4. 【鸿蒙】鸿蒙App应用-《记账软件》开发步骤
  5. 《仿人机器人原理与实战》一1.2 反射弧与仿人机器人设计
  6. 基于W800的AIOT离在线一体方案说明 (阿里飞燕+离线语音控制)
  7. matlab的取整函数
  8. 接口性能测试+调优+性能指标
  9. 芯片手册不需要全部看,抓住框架信息即可
  10. 等保三级核心-物理安全