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
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
Python, Scratch
An có một số nguyên dương ~n~, bạn ấy vừa nghĩ ra một thuật toán mới để biến đổi số về giá trị ~1~. Một phép biến đổi số được thực hiện như sau:
- ~n = n/2~ nếu ~n~ là số chẵn.
- ~n = 3n + 1~ nếu ~n~ là số lẻ.
Phép biến đổi được lặp lại đến khi ~n = 1~.
Ví dụ: ~n = 13~: các phép biến đổi lần lượt được thực hiện như sau:
$$~13~ → ~40~ → ~20~ → ~10~ → ~5~ → ~16~ → ~8~ → ~4~ → ~2~ → ~1~$$
An muốn biết với số nguyên dương ~n~ cho trước, cần thực hiện bao nhiêu bước biến đổi để nhận giá trị bằng ~1~. Em hãy lập trình trả lời giúp An câu hỏi của bạn ấy.
Input
- Gồm 1 dòng chứa số nguyên ~N~ ~(1 \le N \le 10^{6})~
Output
- Một dòng duy nhất chứa kết quả tìm được.
Sample Input
13
Sample Output
9
Bình luận