Biến đổi số
View as PDF
Submit solution
Points:
50.00
Time limit:
1.0s
Memory limit:
64M
Input:
stdin
Output:
stdout
Author:
Problem type
Allowed languages
Assembly, Awk, Brain****, C, C++, Java, Pascal, Perl, Python, Sed, Text
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ố ~n~ về giá trị 1. Một phép biến đổi số ~n~ đượ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 để ~n~ 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!
Dữ liệu vào:
- Một dòng duy nhất chứa số nguyên dương ~n~ ~(1 \le n \le 1000)~
Kết quả
- Một dòng duy nhất chứa kết quả tìm được.
Ví dụ 1:
INPUT
13
OUTPUT
9
Loading...