Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Bài toán bàn phím 2 phím (Copy/Paste) trong JavaScript

Ban đầu notepad có 1 ký tự 'A'. Mỗi bước cho phép: Copy All (copy toàn bộ) hoặc Paste (dán nội dung vừa copy). Tìm số bước tối thiểu để có num ký tự 'A'.

Ví dụ: num=3 → 3 bước (Copy, Paste, Paste).

Ví dụ

const num = 3;
const minimumSteps = (num = 1) => {
  let [curr, copy, steps] = [1, 0, 0];
  while (curr != num) {
    if (copy < curr && (num - curr) % curr == 0) copy = curr;
    else curr += copy;
    steps += 1;
  }
  return steps;
};
console.log(minimumSteps(num));

Kết quả

3