Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาจำนวนขั้นต่ำของการดำเนินการที่จำเป็นในการเข้าถึง n จาก m ใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่มีตัวเลขสองตัว คือ m และ n เป็นอาร์กิวเมนต์แรกและตัวที่สอง

ฟังก์ชันของเราควรจะนับจำนวนการดำเนินการขั้นต่ำที่จำเป็นในการเข้าถึง n จาก m โดยใช้การดำเนินการทั้งสองนี้เท่านั้น -

  • สองเท่า - คูณตัวเลขบนหน้าจอด้วย 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