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

javascriptweb developmentfront end technology

问题

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

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

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

  • Decrement − 从显示屏上的数字中减去 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

相关文章