题目描述

给定一个正整数 N,如果它是偶数,那么让它除以 2;如果它是奇数,那么让它先乘 3 加 1 再除以 2。这样一直下去,最终总能在某一步得到N=1。

给定一个正整数 N,问需要多少步可以让 N 等于 1。

输入描述

一个正整数N(1≤N≤1000)。

输出描述

输出让 N 等于 1 的步数。

样例

输入

3

输出

5

解释

3 => 5 => 8 => 4 => 2 => 1

#include <iostream>
#include <string>
#include <algorithm>
#include<math.h>
#include<queue>
#include<vector>

using namespace std;

int main() {
    int n;
    cin >> n;
    int count = 0;
    while (n != 1) {
        if (n % 2 == 0) {
            n = n / 2;
            count++;
        }
        else {
            n = (3 * n + 1) / 2;
            count++;
        }
    }
    cout << count;
}