Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หาจำนวนการดำเนินการน้อยที่สุดเพื่อไปจาก m ถึง n ใน JavaScript


ปัญหา

เราต้องเขียนฟังก์ชัน 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