1134: 小青蛙,跳跳跳
题目描述
小青蛙Bob是一只没有理想的青蛙,游手好闲,真印了那句话,干啥啥不行,吃啥啥不剩,今天Bob想要前往另外一片荷叶上晒太阳,于是他盘算着如何才能跳到另外一片叶子上,现在假设荷叶在一直线上,每个荷叶都有一个编号从1到n,(n<=5*10^8),Bob有两种跳法,第一:跳到当前所处的荷叶编号的二倍处,第二:跳到当前所处的荷叶编号的三倍处
现在给出你Bob所处的荷叶编号和他想去的荷叶编号,请你告诉他最少需要多少步他才能到达他想去的荷叶。
输入
第一行给出一个整数T(0<T<=100),表示有T组测试数据,而后T行,每行给出两个整数分别表示Bob现在所处的荷叶编号以及他想去的荷叶编号。
输出
对于每个测试样例,输出一个整数表示他最少需要多少步他才能到达他想去的荷叶,如果无法到达,请输出-1.
样例输入 Copy
2
2 12
2 36
样例输出 Copy
2
3
解题思路:其实就是一道数学问题,俩数取余如果为0的话,那就压根不可达,当取余为0时就可以接着往下计算了,通过相除得到的商就是要考虑的点,本题要考虑的就是计算这个商可以被2和3除以多少次,按照这个思路写就行了。
这道题是19年内蒙古师范大学ACM校赛的第一道题,代码是暴力过的,没有考虑优化,欢迎大家一起讨论。
加油加油!!!!
#include<iostream>
using namespace std;int main()
{int number = 0;cin >> number;int start = 0, end = 0;int step = 0;for (int i = 0; i < number; ++i){step = 0;cin >> start >> end;int middle = 0;middle = end / start;int flag = 0;if (end%start != 0)flag = 1;while (middle != 0){if (middle == 1){break;}if (middle % 3 == 0){middle = middle / 3;step++;continue;}if (middle % 2 == 0){middle = middle / 2;step++;continue;}flag = 1;//用来判断是不是不可达break;}if (flag == 1||middle==0)cout << "-1" << endl;else{cout << step << endl;}}return 0;
}
1134: 小青蛙,跳跳跳相关推荐
- 斐波那契数列、小青蛙跳台阶
方法一: 用列表存储已经计算好的数字,省去每次递归求所需数据过程: public int fib1(int n) {List<Integer> nums = new ArrayList&l ...
- 汉诺塔和小青蛙跳台阶问题
//Editor:ApophisJ //Date:2022年10月12日 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> //汉诺 ...
- 小青蛙跳台阶的另类思考
如何输出所有的方式 小青蛙跳台阶的问题已经被讨论过很多次,今天突然有人问我如何将跳的所有办法都输出出来 欢迎大家讨论,本人也很感兴趣
- CocosCreator实战项目1:忍者跳跳跳
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 摘要 正文 使用版本 游戏截图 游戏资源面板 脚本关系 代码部分 结语 摘要 CocosCreator模仿4399忍者跳跳跳 ...
- 小恐龙跳跳跳-周雨涵小游戏 -C
小恐龙跳跳跳! ***找到的游戏. 在google chorme浏览器上,关掉网络,打开一个网站,15秒 后点空格,小恐龙跳跳跳! 注:xxx在2021-4-18日告诉我的游戏! 按'->'让小 ...
- 简单的小青蛙跳一跳问题
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1 ...
- leetcode 小青蛙跳梯子
描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 示例1 输入: 2 复制 返回值: 2 对于第n个台阶来说,只能从n-1或 ...
- 动态规划解决小青蛙跳台阶问题
题目描述 入门版:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 变态版:一只青蛙一次可以跳上1级台阶,也可以跳上2级,也可以跳 ...
- 1330 小青蛙跳台阶
看题可知,这是一个排列组合问题,因此我们使用二维数组,算出跳2级台阶和跳1级台阶的数量即可算出答案 例如当总共台阶数为6时 跳1级台阶 跳2级台阶 6 0 4 1 2 2 0 3 把每种可能相加即可得 ...
最新文章
- 微软服务器无法删除不了,微软终于决定解决 “进程占用而无法删除某文件”的问题...
- 文本和代码文件助手软件
- 产品经理如何开始数据分析之路?(基础知识)
- android 三星 拍照,安卓里面拍照最好的三个品牌,OPPO华为三星怎么选
- 库-libuv:概述
- PHP的stdClass
- linux 挂载ntfs格式硬盘
- 以小窥大,从一盏路灯看亿万物联网之路
- 梯度下降法与正规方程的比较
- Android 签名类型
- SpringBoot简明教程
- **容易混淆的4中park变换**(转载)
- CentOS8.3安装时安装源设置基础软件仓库时出错
- 吐槽大会 之博客园两个月使用体验
- phpmail通过qq发邮箱失败_请问phpmailer发送Gmail总是失败是什么原因,qq邮件可以发送出去...
- 实验13:20220625 1+X 中级实操考试(id:3411)
- egg-views-ejs
- “数学界的诺贝尔奖”出炉,4人获奖
- Aura Components Basics on Trailhead —— Input Data Using Forms
- EOJ Monthly 2018.12 B. 清点星辰(蒙特卡洛模拟)