您的位置:首页 > 其它

角谷猜想,计算第一次出现1经过了几次操作

2016-12-04 10:06 274 查看

题目描述

70年代中期,美国各所名牌大学校园内,人们都像发疯一般,夜以继日,废寝忘食地玩弄一种数学游戏。这个游戏十分简单:任意写出一个自然数N,并且按照以下的规律进行变换:

如果是个奇数,则下一步变成3N+1。

如果是个偶数,则下一步变成N/2。

不单单是学生,甚至连教师、研究员、教授与学究都纷纷加入。为什么这种游戏的魅力经久不衰?因为人们发现,无论N是怎样一个数字,最终都无法逃脱回到谷底1。准确地说,是无法逃出落入底部的4-2-1循环,永远也逃不出这样的宿命。

这就是著名的“冰雹猜想”。

现在给定数a,求将a进行几次操作后第一次出现1。(CCF入门P142)

输入示例1

6

输出示例1

9

题解

#include <cstdio>
using namespace std;

int main() {
int n, count = 1;
scanf("%d", &n);
do {
if(n % 2 == 0) n /= 2; else n = 3 * n + 1;
count++;
} while(n != 1);
printf("%d", count);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐