首页 > 试题广场 >

求x到y的最少计算次数

[编程题]求x到y的最少计算次数
  • 热度指数:3233 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个-100到100的整数x和y,对x只能进行加1,减1,乘2操作,问最少对x进行几次操作能得到y?
例如:
a=3,b=11: 可以通过3*2*2-1,3次操作得到11;
a=5,b=8:可以通过(5-1)*2,2次操作得到8;


输入描述:
输入以英文逗号分隔的两个数字,数字均在32位整数范围内。


输出描述:
输出一个数字
示例1

输入

3,11

输出

3
头像 ls.joshua
发表于 2020-03-25 23:36:25
// 遍历该层的三个节点,分别为+1, -1, *2 // 加入待选节点前,先进行判断是否合法#include <bits/stdc++.h> using namespace std; int main(void) { int level = -1, size = 0; 展开全文
头像 重生之我要当分子
发表于 2024-12-31 01:13:45
解题思路 解题思路: 使用 BFS(广度优先搜索)来找到最短路径 每个状态可以进行三种操作: 当前数 + 1 当前数 - 1 当前数 * 2 使用队列存储待处理的状态,使用集合记录已访问的状态 由于数字范围有限,可以设置合理的边界防止溢出 代码 c++ java python 展开全文
头像 赫he
发表于 2024-04-15 16:04:02
#include <iostream> #include <stack> #include <vector> using namespace std; int x, y; stack<int> st; int s[201]; int main() 展开全文