练35.4 奶牛的数字游戏
统计角谷变换到 1 需要的步数
正文
// 原题:https://oj.yecheng.tv/p/P214
// 题意:奇数乘 3 加 1,偶数除以 2,
// 每变一次得 1 分,变到 1 游戏结束,求得分。
// 思路:与角谷猜想同样的变换,
// 只是这次统计变换的次数。
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
int score = 0;
// 变到 1 为止,每次记 1 分
while (n != 1) {
if (n % 2 == 1) n = n * 3 + 1;
else n /= 2;
score++;
}
cout << score << endl;
return 0;
}
C++语法 · 循环结构的其它内容
- 【例24.1】 重要的话说 n 遍
- 【例24.2】 26个兄弟姐妹1
- 【例24.3】 奇数求和
- 练24.1 老狼老狼
- 练24.2 for循环求和
- 练24.3 循环输出
- 【例25.1】 不说脏话
- 【例25.2】 26个兄弟姐妹2
- 【例25.3】 输出奇偶数之和
- 练25.1 打老虎
- 练25.2 订餐时间
- 练25.3 偶数求和
- 【例26.1】 人类的本质
- 【例26.2】 循环判断输出
- 【例26.3】 多数求和
- 练26.1 输出偶数
- 练26.2 分苹果
- 练26.3 求平均年龄
- 【例27.1】 求整数的和与均值(限c++)
- 【例27.2】 最小n值
- 【例27.3】 第几项
- 练27.1 叮叮当当
- 练27.2 布纳特难题
- 练27.3 称心如意(限c++)
- 【例28.1】 统计奖牌
- 【例28.2】 求出e的值
- 【例28.3】 数列分段
- 练28.1 多边形内角和
- 练28.2 满足条件的数累加
- 练28.3 短信计费(限c++)
- 练28.4 上课点名(限c++)
- 【例29.1】 求阶乘
- 【例29.2】 幂的末尾
- 【例29.3】 求小数的某一位
- 练29.1 人口增长问题
- 练29.2 末两位数
- 练29.3 银行利息
- 【例30.1】 平方根
- 【例30.2】回家作业
- 【例30.3】 按要求计算输出
- 练30.1 鸡尾酒疗法
- 练30.2 错误减法
- 练30.3 奇偶分家
- 【例31.1】 石头剪子布
- 【例31.2】 证书等级
- 【例31.3】正常血压
- 练31.1 年龄与疾病
- 练31.2 数值统计
- 练31.3 画图
- 【例32.1】 学游泳
- 【例32.2】 凑数
- 【例32.3】 数位积
- 练32.1 立方和不等式
- 练32.2 种植竹笋
- 练32.3 买房子
- 【例33.1】 卡(qia)常数
- 【例33.2】 两位数
- 【例33.3】 凑数
- 练33.1 3721数
- 练33.2 素数判断