Gửi bài giải
Điểm:
10,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch, TEXT
Bé Sen đang học chuyên đề về các thuật toán số học và rất hào hứng với những thuật toán xử lí số. Hôm nay, bé Sen lại được biết thêm một thuật toán mới để biến đổi một số nguyên dương ~n~ về giá trị 1. Mỗi phép biến đổi số ~n~ được thực hiện như sau:
- Nếu ~n~ là số chẵn thì thay ~n~ bằng giá trị ~n / 2~;
- Nếu ~n~ là số lẻ thì thay ~n~ bằng giá trị ~3n + 1~.
Yêu cầu: Với số nguyên dương ~n~ cho trước, cần thực hiện bao nhiêu phép biến đổi để ~n~ nhận giá trị bằng 1?
INPUT
Gồm một dòng chứa số nguyên dương ~n~ (~1 \leq n \leq 1000~).
OUTPUT
Gồm một dòng chứa một số nguyên duy nhất là số phép biến đổi để ~n~ nhận giá trị bằng 1.
SAMPLE INPUT
13
SAMPLE OUTPUT
9
Giải thích: Các phép biến đổi như sau: ~13 \to 40 \to 20 \to 10 \to 5 \to 16 \to 8 \to 4 \to 2 \to 1~.
Bình luận