GIFT - Hộp quà đặc biệt

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Hôm nay là sinh nhật của Cá Nóc. Vì biết Cá Nóc rất thích chơi với những con số nên một ngườibạn tri kỉ của cậu ấy - Thợ Săn đã tặng cho Cá Nóc ~T~ hộp quà đặc biệt. Nhưng tất cả hộp quàđều bị khóa và đi kèm với mỗi hộp là một số nguyên dương ~n~. Thợ săn còn tặng cho Cá Nóc mộtcông thức như sau:

$$F(n) = \left\{\begin{matrix} & n / 2 & \textnormal{nếu}\ n\ \textnormal{chẵn} \\  & 3n + 1 & \textnormal{nếu}\ n\ \textnormal{lẻ}\end{matrix}\right.$$

Thợ Săn nói với Cá Nóc rằng: với số ~n~ đi kèm trong mỗi hộp quà, hãy biến đổi ~n~ thành ~F(n)~ một số lần cho tới khi ~n = 1~. Số lần thực hiện phép biến đổi chính là mã số để mở khóa hộp quà đó.

Ví dụ với một hộp quà có ~n = 5~, các phép biển đổi được biểu diễn như sau:

  • 5 → 16 → 8 → 4 → 2 → 1.
  • Số phép biến đổi thực hiện là 5.

Bởi vì Cá Nóc rất thông minh, cậu ấy có thể đoán ra được ngay là số lần thực hiện phép biến đổi là hữu hạn. Nhưng việc tìm ra mã số mất khá nhiều thời gian. Mặc dù rất muốn xem bên trong những hộp quà có gì nhưng Cá Nóc lại bận phải tiếp đón những người bạn của mình. Nên Cá Nóc muốn nhờ các bạn tìm ra con số tương ứng để mở hộp quà.

Input

  • Dòng đầu tiên chứ số nguyên dương ~T(T ≤ 10^3)~.
  • ~T~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~n_i(ni ≤ 10^6)~ là số đi kèm cùng hộp quà thứ ~i~.

Output

  • Ghi kết quả ra ~T~ dòng, dòng thứ ~i~ ghi ra con số dùng để mở hộp quà thứ ~i~.

Sample

Input #1
3
5
1
2
Output #1
5
0
1

Problem source: Kc97ble - Free Contest


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    lmt_2k6  đã bình luận lúc 9, Tháng 11, 2024, 14:51

    case 1 một là TLE, hai là WA, chả biết sửa kiểu gì, trong khi 5 case còn lại đúng hết


  • -1
    dinhvantung0611  đã bình luận lúc 4, Tháng 2, 2024, 3:34

    Đừng sử dụng hàm để xử lý, nhập vào xử luôn trong hàm main