数的变化

时间限制 : 1.000 sec        内存限制 : 128 MB

题目描述:

小明给你提出了一个问题,即给出两个整数 a 和 b,每次操作可以 a+1 或 a×2,问至少进行多少次操作可以使得 a=b。

输入:

一行两个整数 a 和 b,之间有一个空格。

输出:

一行一个整数 ans,表示你至少进行多少次操作可以使得 a=b。

样例输入:

2 10

样例输出:

3

提示:

数据范围:
对于 100% 的数据满足:1 ≤ a ≤ b ≤ 10^9。

呵,又是一道水题

不知道你有没有学过小学奥数,这道题应该是一道还原问题

例:

2*2=y, y+1=z......a*2=10

只要倒过来:10/2=5   5-1=4   4/2=2 就可以还原

在这道题里,需要分类讨论

当b/2<a时,说明a*2>b,所以a只能一直+1;

当b%2==0时且b/2>a·,b能被2整除且b大于a的两倍,为了次数尽可能少,就除以2;

当b不能除以2或b小于a的两倍时,a只能一直+1.

上代码(ps:只能参考,拒绝复制粘贴等学术不端行为)

完整代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
long long a, b, ans;
cin>>a>>b;
if(b/2<a)ans=b-a;//当b/2<a时,说明a*2>b,所以a只能一直+1;
else
for(ans=0;b!=a;ans++){
if(b%2==0&&b/2>=a)b/=2;//当b%2==0时且b/2>a·,b能被2整除且b大于a的两倍,为了次数尽可能少,就除以2;
else b--;//当b不能除以2或b小于a的两倍时,a只能一直+1.
}
cout<<ans;
return 0;
}

今天又AC了一道呢~今天你AC了吗~

C++:数的变化的更多相关文章

  1. navicat查看mysql数据表记录数不断变化

    在使用navicat进行数据库管理的时候,在查看表对象的时候会发现,每次刷新,数据表的记录数不断变化,尤其是大表. 对于100万的数据经常会显示九十几万,当然通过count(*)出来的数据是正确的. ...

  2. 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上)【转载】

    转自: DBAplus社群 http://www.toutiao.com/m5762164771/ 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上) - 今日头条(TouTiao.com ...

  3. mysql启动參数(/etc/my.cnf)具体解释汇总

    在linux以下的/etc/my.cnf的參数具体解释汇总 MYSQL–my.cnf配置中文具体解释 basedir = path   使用给定文件夹作为根文件夹(安装文件夹). character- ...

  4. Element-ui DatePicker显示周数

    1.场景描述 我们公司是做电商的,运营的工作指标都是按周来定的,所以他们对周特别敏感,希望我们能在日期选择器上显示周数.刚接到这个需求时,心中很不乐意,因为Element-ui的日期选择器根本不支持显 ...

  5. Dubbo负载均衡:最少活跃数(LeastActive)

    官方文档定义 最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差. 使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大. 关于活跃数 最少活跃数负载均衡,最关键的点在于活跃数.活跃 ...

  6. HTML5移动开发学习笔记之Canvas基础

    1.第一个Canvas程序 看的是HTML5移动开发即学即用这本书,首先学习Canvas基础,废话不多说,直接看第一个例子. 效果图为: 代码如下: <!DOCTYPE html> < ...

  7. Python 随机数用法

    1. random.seed(int) 给随机数对象一个种子值,用于产生随机序列. 对于同一个种子值的输入,之后产生的随机数序列也一样. 通常是把时间秒数等变化值作为种子值,达到每次运行产生的随机系列 ...

  8. linux commands

    abrt-cli --since ;查看abrt捕捉的异常 alias ;别名,alias rm='rm -i':使用“ \rm ” 使用原命令 alsamixer ;图形音量调节,q 增加左声道, ...

  9. Java基础学习(四)

    流程控制 /* 控制流程语句之---if 判断语句 格式一: 只适用于一种情况下去使用. if(判断条件){ 符合条件执行的代码; } 格式二:适用于两种情况下去使用 if(判断条件){ 符合条件执行 ...

随机推荐

  1. 【Android开发】富文本

    SpannableString spannableString = new SpannableString("设置文字的前景色为淡蓝色"); ForegroundColorSpan ...

  2. Photoshop之用“色彩范围”命令抠像

    1. 打开一个文件.执行"选择>色彩范围",勾选"本地化颜色族",然后在任务背景上单击取样. 2. 取好样以后点击确定,图片如下所示,执行"选择 ...

  3. Mybatis实现批量删除数据

    Mybatis实现批量删除操作 学习内容: 1. 使用 2. 代码实现 2.1 UserMapper.java 接口 2.2 UserMapper.xml 总结: 学习内容: 1. 使用 这里通过动态 ...

  4. 谷歌开发者工具 Network:Disable cache 和 Preserve log

    参考博文地址:https://my.oschina.net/af666/blog/871793 Network Disable cache(禁止缓存):勾上,修改代码之后,刷新页面没有更新,看有没有禁 ...

  5. ASMCMD-8102: no connection to Oracle ASM

    通过ASMCMD命令连接ASM,Connected to an idle instance [root@shdb02 ~]# su - oracle [oracle@shdb02 ~]$ asmcmd ...

  6. 几种比较经典的波形及其FFT变换(正弦波,三角波,方波和锯齿波)

    之前上学时我的信号学得最差了,主要原因还是我高数学得不怎么样.可能是人总敬畏自己最不会的,所以我觉得我学过诸多科目中,数学是最博大精深而最妙的,从最开始的一次函数到反比例函数,二次三次函数和双曲线,椭 ...

  7. OV5640图像采集(一)VGA显示

    vga控制器模块 1 引言  项目的背景是采集无人车间现场的工件图像并送往控制间pc端处理,最终实现缺陷检测.项目包括图像采集模块,数据传输模块,上位机,缺陷检测算法等四个部分.其中,图像采集模块又分 ...

  8. python-django搭建页面步骤

    一.配置环境1.file>>New project 创建文件名,配置python.exe执行路径2.setting.py配置①建立static文件夹,最后一行添加STATICFILES_D ...

  9. Python识别图片中的文字

    1 import os,glob 2 def photo_compression(original_imgage,tmp_image_path): 3 '''图片备份.压缩:param origina ...

  10. Rancher部署PostgreSQL容器

    1.打开工作负载,选择部署服务 2.选择合适的PostgreSQL镜像 镜像地址https://registry.hub.docker.com/_/postgres,也可使用公司内部镜像库 网络模式选 ...