角谷猜想,计算第一次出现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; }
相关文章推荐
- 输入整数角谷步数 你听说过角谷猜想吗? 任意的正整数,比如 5, 我们从它开始,如下规则计算: 如果是偶数,则除以2,如果是奇数,则乘以3再加1. 如此循环,最终必会得到“1” !输入整数
- php计算最后一次,第一次字符串出现位置
- 在第一次运行dcpromo的安装ad的时候,出现操作失败:未能为域创建GPO。出现了扩展错误
- 计算字符c第一次出现在字符数组src的下标
- 使用easyui插件中的模态框做添加/修改操作,第一次添加一切正常,第二次添加,页面出现第一次的残留数据?
- 集合去重操作,保证顺序不变,以集合中第一次出现的数据为准
- 你听说过角谷猜想吗?任意的正整数,比如 5, 我们从它开始,如下规则计算如果是偶数,则除以2,如果是奇数,则乘以3再加1.如此循环,最终必会得到“1” !
- 计算出一段英文中出现频率最高的单词(第一次面试时没做出来,现在都记忆深刻)
- KMP算法 计算短字符串在长字符串中的第一次出现的位置
- 角谷步数 你听说过角谷猜想吗? 任意的正整数,比如 5, 我们从它开始,如下规则计算: 如果是偶数,则除以2,如果是奇数,则乘以3再加1. 如此循环,最终必会得到“1” !
- 如何统计在一篇文章中某个单词出现了几次,以及第一次出现的位置
- 在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递传递
- 输入一个多位数,将这个数每一位相乘,再将积继续上一步操作,求经过几次操作后,积变成一位数?
- 安装SQL2000时候 出现 挂起操作不能继续安装
- 解决打开CHM文件,出现"取消操作“的怪现象
- 解决访问优盘(MP3)出现 "本次操作由于受计算机的限制而被取消,请与你的系统管理员联系" 的问题
- 出现“创建挂起的文件操作”解决办法
- SQL安装时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作……”
- Google 广告收入计算公式猜想
- 安装SQLSERVER2000时出现"以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误