Mô tả vấn đề
Chúng ta cần viết hàm JavaScript nhận vào hai số m và n làm đối số 1, 2. Hàm đếm số phép toán tối thiểu để từ m đạt n, chỉ dùng 2 phép: Double (nhân 2) hoặc Decrement (trừ 1).
Ví dụ, nếu đầu vào là:
const m = 5; const n = 8;
Thì đầu ra nên là:
const output = 2;
Giải thích đầu ra
Các phép toán: 5 → 4 → 8 (trừ 1 rồi nhân 2).
Ví dụ minh họa
Mã thực hiện (nghịch từ n về m):
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));Đầu ra
Kết quả trong console sẽ là:
2