在 JavaScript 中找到从 m 达到 n 所需的最少操作数

问题

我们需要编写一个 JavaScript 函数,它接受两个数字 m 和 n 作为第一个和第二个参数。

我们的函数应该计算从 m 达到 n 所需的最小操作数,仅使用这两个操作 -

  • Double - 将显示屏上的数字乘以 2,或;

  • 递减- 从显示屏上的数字中减去 1。

例如,如果函数的输入是 -

const m = 5;
const n = 8;

那么输出应该是 -

const output = 8;

输出说明:

因为操作是 -

5 → 4 → 8

示例

此代码将是 -

const m = 5;
const n = 8;
const findOperations = (m, n) => {
   let res = 0;
   while(n > m){
      if(n % 2 === 0){
         n /= 2;
      }else{
         n += 1;
      };
      res += 1;
   };
   return res + m - n;
};
console.log(findOperations(m, n));
输出结果

控制台中的输出将是 -

2

猜你喜欢