1427: 数字转换

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 572  Solved: 153

SubmitStatusWeb Board

Description

老师交给小明一个任务,有两个数字x和y(x<y),通过以下两种操作:一、将x乘以2;二、将x的值加上1。小明希望能通过尽可能少的操作来完成这个任务,但是不知道怎么做,现在请大家来帮帮他的忙吧。

Input

两个整数x,y(0<=x<y<=10^6)。

Output

一个整数n,表示最少经过多少次操作,x可以变成y。

Sample Input

2 5
10 80

Sample Output

2
 
最怕的就是数学题哎;
采用逆推法,由大数向小数递推,不难发现除2操作带来的‘收益’远远大于减一操作无论数为多大时候,最小也就是2/2=1,2-1=1,此时二者效果相等,其他时候除2会减少的更加明显;
因此得出结论,能除2尽量多除二,除不尽时再减一;
 

#include<iostream>
#include<cstring>
using namespace std;
int solve(int x,int y)
{
int i,j,sumn=0;
while(x<y){
if(y%2==0){
if(y/2>=x) y/=2;
else sumn+=y-x-1,y=x;
}
else y--;
++sumn;
if(x==y) break;
}
return sumn;
}
int main()
{
int x,y;
while(cin>>x>>y) cout<<solve(x,y)<<endl;
return 0;
}

zzuli1427 NO.6校赛----数字转换的更多相关文章

  1. SCNU省选校赛第二场B题题解

    今晚的校赛又告一段落啦,终于"开斋"了! AC了两题,还算是满意的,英语还是硬伤. 来看题目吧! B. Array time limit per test 2 seconds me ...

  2. HZNU第十二届校赛赛后补题

    愉快的校赛翻皮水! 题解 A 温暖的签到,注意用gets #include <map> #include <set> #include <ctime> #inclu ...

  3. 校赛F

    问题描述 例如对于数列[1 2 3 4 5 6],排序后变为[6 1 5 2 4 3].换句话说,对于一个有序递增的序列a1, a2, a3, ……, an,排序后为an, a1, an-1, a2, ...

  4. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  5. 在 shell 脚本获取 ip、数字转换等网络操作

    在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip ...

  6. numtoyminterval函数——数字转换函数

      numtoyminterval函数——数字转换函数 ----转至51CTO 水滴的博客  语法:NUMTOYMINTERVAL ( n , 'char_expr' )              c ...

  7. 比较java与c语言中数字转换成字符的不同

    java java中将数字转换成字符非常方便,只要用一个"+"然后在跟一个空格行了.比如,你输入一个122 ,就会变成"122 ". import java.u ...

  8. ORACLE数字转换人民币大写

    ORACLE 数字转换人民币大写     示例.   数字                    :183066999230.68 人民币大写        :壹仟捌佰参拾亿陆仟陆佰玖拾玖万玖仟贰佰参 ...

  9. 2014上半年acm总结(1)(入门+校赛)

    大一下学期才开始了acm,不得不说有一点迟,但是acm确实使我的生活充实了很多,,不至于像以前一样经常没事干=  = 上学期的颓废使我的c语言学的渣的一笔..靠考前突击才基本掌握了语法 寒假突然醒悟, ...

随机推荐

  1. 怎么说, 开发会很乐意去主动修改bug?

    怎么说, 开发会很乐意去主动修改bug? 一图顶上千言万语,如下:

  2. 【翻译】std::list::remove - C++ Reference

    公有成员函数 std::list::remove void remove(const value_type& val); 删除与给定值相等的元素 从容器中删除所有与 val 值相等的元素.li ...

  3. 苹果电脑macbook 安装 Burp Suite pro_v1.7.37破解版

    1.先去官网下载最新版本 Burp Suite Community Edition v1.7.36安装完成 https://portswigger.net/burp/communitydownload ...

  4. perl 入门知识(1)

    <一> 语句及注释: Perl 语句以分号(;)结尾,用 # 作为一行的注释,没有其它语言中那种跨行的注释.代码块用大括号围起来,这个和 C 类似,但这个大括号在有些地方是强制要求,如在 ...

  5. Git教程摘录

    http://download.csdn.net/download/lianghesgdmv/9893973  教程doc下载 备用-- 链接:http://pan.baidu.com/s/1gfu2 ...

  6. kafka删除一个topic

    前言 当我们在shell中执行topic删除命令的时候` kafka-topics --delete --topic xxxx --zookeeper xxx`,会显示,xxxx已经被标记为删除.然后 ...

  7. linq——group by

    多列排序&&聚合函数 var result = from i in                (from uh in db.UserHistories                ...

  8. UVa 10048 噪音恐惧症(Floyd)

    https://vjudge.net/problem/UVA-10048 题意: 输入一个C个点S条边的无向带权图,边权表示该路径上的噪声值.输入一些询问,每次询问两个点,输出这两点间最大噪声值最小的 ...

  9. python 打包成tar包

    def make_targz(output_filename, source_dir): with tarfile.open(output_filename, "w:gz") as ...

  10. listener TNS-01189 问题

    -- 启动监听,提示已经启动. [oracle@sh ~]$ lsnrctl start LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 0 ...