Đưa về 0

View as PDF

Points: 500 (p) Time limit: 1.0s Memory limit: 128M Input: stdin Output: stdout

Cho một số nguyên dương \(N\). Thực hiện các thao tác sau để đưa \(N\) về \(0\) với số bước ít nhất:

  • Nếu \(N\) là số chẵn, thực hiện \(N\) = \(\frac{N}{2}\).
  • Nếu \(N\) là số lẻ, thực hiện \(N\) = \(N - 1\).

Hãy viết một chương trình:

  • Nhập vào một số nguyên dương \(N (1 ≤ N ≤ 10^{18})\).
  • In ra số bước ít nhất để đưa \(N\) về 0.

Ví dụ

Input

15

Ouput

7
Note
Bước 1: 15 (lẻ) -> 14
Bước 2: 14 (chẵn) -> 7
Bước 3: 7 (lẻ) -> 6
Bước 4: 6 (chẵn) -> 3
Bước 5: 3 (lẻ) -> 2
Bước 6: 2 (chẵn) -> 1
Bước 7: 1 (lẻ) -> 0
Tổng số bước: 7

Comments

There are no comments at the moment.