站外题求助
  • 板块学术版
  • 楼主zhishisen
  • 当前回复23
  • 已保存回复23
  • 发布时间2024/8/9 16:18
  • 上次更新2024/8/9 16:57:04
查看原帖
站外题求助
1240173
zhishisen楼主2024/8/9 16:18

游戏 1 分 1000 ms 64 MB

你在电脑上玩数字小游戏。

在游戏中,你得到了一个正整数 a。

屏幕上有六个按键,您可以通过点击它们来改变 a 的值。这六个按键的功能分别如下:

  1. 将 a 变为 a×2 ;

  2. 将 a 变为 a×4 ;

  3. 将 a 变为 a×8 ;

  4. 将 a 变为 a/2 ,前提是 a 为 2 的倍数;

  5. 将 a 变为 a/4 ,前提是 a 为 4 的倍数;

  6. 将 a 变为 a/8 ,前提是 a 为 8 的倍数。

你想知道,你能否通过按这些键来把 a 的值变成 b。

如果可以,那么请回答把 a 的值换算 b 需要的最小按键次数;

如果不可以,那么代表游戏有问题,此时回答 -1 即可。

请注意:电脑一共问了你 t 个问题,你需要一一回答。

输入 第一行,一个正整数 t,代表问题的总数。

接下来 t 行,每行都有两个正整数 a,b,代表每个问题的参数。

输出 对于每个问题:

如果可以由 a 变成 b,你需要输出一行一个数,代表最少按键次数;

否则,输出一行一个 -1。

样例 样例 1 输入 4 1 2 1 5 2 16 48 3 样例 1 输出 1 -1 1 2 提示 对于前 20% 的数据,保证 1≤a,b≤15 。

对于前 35% 的数据,保证 1≤a,b≤1000 。

对于前 50% 的数据,保证 1≤a,b≤106 ,1≤t≤100 。

对于另外 10% 的数据,保证 a=b 。

2024/8/9 16:18
加载中...