洛谷-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\%) 的数据,(1le Nle 10^6)。
【样例说明】
当 (N) 的初始值为 (5) 时,游戏的过程如下:
(N) | 变换后的数字 | 变换过程 | 总分 |
---|---|---|---|
(5) | (16) | (3 imes 5+1) | (1) |
(16) | (8) | (16div 2) | (2) |
(8) | (4) | (8div 2) | (3) |
(4) | (2) | (4div 2) | (4) |
(2) | (1) | (2div 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;
}