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...