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