整数转换
来源:互联网 发布:ubuntu applications 编辑:程序博客网 时间:2024/06/05 20:19
给出两个整数 X , Y ,计算至少需要多少步才能将 X 转换为 Y 。
Input
输入的第一行包含一个整数 T (1 ≤ T ≤ 5 00 ),表示一共有 T 组测试数据。
每组测试数据占一行,包含两个整数 X , Y (1 ≤ X ≤ Y ≤ 10 18 ).
Hint
对样例2的解释:只需3步即可将3转换为10: 3 -> 4 -> 5 -> 10 。
对样例3的解释:只需4步即可将2转换为11: 2 -> 4 -> 5 -> 10 -> 11 。
重在思路。在此感谢孙同学帮助。整体思路是对大数y一直除以2直到y<x,然后退后一步,做减1的操作直到y=x。
AC代码
#include<iostream>
using namespace std;
int main()
{
int T;
long long int x,y;
cin>>T;
while(T--)
{
long long int j=0;
cin>>x>>y;
while(y>x)
{
if(y%2==0)
{
y=y/2;
j++;
}
else
{
y=(y-1)/2;
j+=2;
}
}
if(y==x) cout<<j<<endl;
else{
y=y*2; j--;
j+=y-x;
cout<<j<<endl;
}
}
return 0;
}
End
- 整数转换
- 整数转换
- 整数转换
- 整数转换
- 整数转换
- 字符串转换整数及整数转换字符串
- 字符串转换为整数
- 整数转换成字符串
- 整数小数相互转换
- 字符串转换为整数
- 整数字符串的转换
- 3. 整数/字符串转换
- 字符串转换为整数
- 整数转换成字符串
- 整数转换成字符串
- 字符串转换为整数
- 字符串转换成整数
- 字符串转换为整数
- VB.NET视频总结
- Storm教程1理论介绍
- 权限操作与位运算
- 项目管理常用的工具集
- Map总结
- 整数转换
- Rails分页在虚控制器中提示未找到实例对象的解决方法
- web级mysql颠覆性学习笔记--在Mysql中灌入100万条数据
- 读书
- pat a1041
- FFMPEG编码:参数研究
- ajax跨域获取json
- PART VI 应用程序层 Chapter 14 模拟、图形学和其他应用程序
- C++对C的增强