洛谷-P6206 [USACO06OCT] Another Cow Number Game G

洛谷-P6206 [USACO06OCT] Another Cow Number Game G

原题链接:


题目描述

奶牛们在玩一种数字游戏,Bessie 想让你帮她预测一下结果。游戏开始时,Bessie 将得到一个正整数 \(N\)。此时她的分数为 \(0\)

奶牛们按照以下规则对 \(N\) 进行变换:

  • 如果 \(N\) 是奇数,那么将它乘以 \(3\) 后再加 \(1\)
  • 如果 \(N\) 是偶数,那么将它除以 \(2\)

数字每变换一次,Bessie 就得到 \(1\) 分。当 \(N=1\) 时,游戏结束。此时的分数就是她的最终得分。

输入格式

一行,一个整数 \(N\)

输出格式

一行,一个整数,为 Bessie 的最终得分。

输入输出样例

输入 #1

5

输出 #1

5

说明/提示

【数据范围】

对于 \(100\%\) 的数据,\(1\le N\le 10^6\)


【样例说明】

\(N\) 的初始值为 \(5\) 时,游戏的过程如下:

\(N\) 变换后的数字 变换过程 总分
\(5\) \(16\) \(3\times 5+1\) \(1\)
\(16\) \(8\) \(16\div 2\) \(2\)
\(8\) \(4\) \(8\div 2\) \(3\)
\(4\) \(2\) \(4\div 2\) \(4\)
\(2\) \(1\) \(2\div 2\) \(5\)

Bessie 的最终得分为 \(5\)

C++代码

#include <iostream>
using namespace std;

int main() {
    long long n, i;
    cin >> n;
    for (i=0; n != 1; ++i)
        if (n % 2)
            n = n * 3 + 1;
        else
            n /= 2;
    cout << i << endl;
    return 0;
}
posted @ 2021-01-22 11:43  yuzec  阅读(261)  评论(0编辑  收藏  举报