Loading Now

twoSix

Cho trước một số nguyên n. Trong một thao tác, bạn có thể nhân n với 2 hoặc chia n cho 6 (chỉ khi n chia hết cho 6). Bạn hãy tìm ra số thao tác cần sử sụng ít nhất để biến n thành 1. Nếu không thể, hãy trả lại giá trị -1

Ví dụ:

Với n = 3 thì two_six(n) = 2 

  • Giải thích: Ta có:
    • 3 * 2 = 6
    • 6 / 6 = 1 => số thao tác ít nhất cần thực hiện là 2

Với n = 2 thì two_six(n) = -1

  • Giải thích: vì không thể làm cho giá trị của n bằng 1

Đầu vào/Đầu ra:

  • [Giới hạn thời gian chạy] 0.5 giây với C++, 3 giây với Java và C#, 4 giây với Python, Go và Js.
  • [Đầu vào] Integer n
    1 ≤ n ≤ 109
  • [Đầu ra] Integer
    Số thao tác ít nhất cần thực hiện để lấy giá trị 1 từ n, nếu không thể thì trả lại -1

Post Comment

Contact