角谷定理

题目描述

角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。

现在请你编写C++程序求经过多少个数可得到自然数1。如:例如数据22的变化过程: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1,数据变化次数为16。注意,若输入自然数为1,则不需要运算,运算次数为1(用循环和递归分别实现)。

输入

一个自然数n(n<=1000)

输出

得到自然数1所需要经过的数字个数。

样例输入

22

样例输出

16

样例解释

数据22的变化过程: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1,数据变化次数为16

(1)递归实现

#include <iostream>
using namespace std;
int getCount(int n){if(n ==1) return 1;if(n % 2 == 0){return getCount(n / 2) + 1;}return getCount(n * 3 +1) + 1;
}
int main(){int n;cin >> n;cout << getCount(n);return 0;
}

(2)循环实现

#include <iostream>
using namespace std;
int getCount(int n){int count = 0;while(n > 1){count++;if(n % 2 == 0){n /= 2;}else{n = n * 3 + 1;}}return count + 1;
}
int main(){int namespace;cin >> n;cout << getCount(n);return 0;
}

C++解角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。若输入自然数为1,则不需要运算,运算次数为1(用循环和递归分别实现)相关推荐

  1. Java解决角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。

    一.题目分析 2.角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 分析:假设一个数为n,定义一个 ...

  2. 角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。

    角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出 22 11 34 17 5 ...

  3. 角谷定理python每次输出数_角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。...

    角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出 22 11 34 17 5 ...

  4. java角谷_java实现递归设计——数鸭子和角谷定理

    java实现递归设计--数鸭子和角谷定理 java实现递归设计--数鸭子和角谷定理 一 .题目分析 题目一:一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只.这样他经过了七个村子后还 ...

  5. 角谷定理python输出变化过程_角谷定理。

    角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. (1) 问题分析: 首先判断输入的自然数是不是1 ...

  6. java角谷_Java:利用递归方法实现角谷定理

    问题描述: 角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出 22 11 3 ...

  7. java角谷_JAVA 角谷定理 递归

    角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出 22 11 34 17 5 ...

  8. 角谷定理python_递归算法实现角谷定理

    问题重述: 角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出22 11 34 ...

  9. 赶鸭子;角谷定理;java实现

    题目分析 目的: 掌握递归程序设计的方法.明确递归的概念,通过对问题的分析,找出递归关系以及递归出口以对问题进行递归结构设计: 掌握递归程序转换为非递归程序的方法. 要求: 用递归方法设计下列各题,并 ...

最新文章

  1. 学习资源:在线学习 Python(一)
  2. python中匿名函数的作用_Python 中的匿名函数,你会用吗
  3. PHP 在 Nginx 下主动断开连接 Connection Close 与 ignore_user_abort 后台运行
  4. Opengl-帧缓冲(一个新的缓冲对象,想一下深度和模板缓冲)
  5. python学习_数据处理编程实例(一)
  6. 【Python】Python一行代码能做什么,30个实用案例代码详解
  7. 市场规模占全国4成,广东物联网市场发展强劲
  8. MIP开发教程(三) 使用MIP-CLI工具调试组件
  9. java回调函数 final_java中带回调函数的字符串替换,类似js中的replace(rgExp,function)...
  10. Django案例:显示图书信息
  11. Python绘制匀加速运动质点的速度-时间图像与位移-时间图像
  12. PD2SE-Net:植物病害诊断和严重性评估网络(首次)
  13. LTT (Linux Trace Toolkit) 简介
  14. 管理账目的计算机软件有哪些,最好的记账软件哪个好
  15. verilog——74X138译码器及其应用
  16. Could not instantiate the executor. Make sure a planner module is on the classpath
  17. 网络游戏广告植入案例
  18. Vijos P1234 口袋的天空
  19. 计算机内存占用过高,如果内存使用率过高怎么办? Win10计算机内存占用率高的原因和解决方案...
  20. 开源星空照片_如何拍摄星空的好照片

热门文章

  1. 推荐个NodeJS的入门教程 — Node入门/nodebeginner
  2. 【算法竞赛学习笔记】Link-Cut-Tree基础-超好懂的数据结构
  3. 千亿龙头开启价格血拼,四个重要消息将影响这几个板块的走势
  4. Poco的介绍和入门教学
  5. 拆解理想汽车Q3财报:收入增速继续下滑,年内两次更换首席技术官
  6. 计算机考试保存文档名字,计算机考试 Wor 文档计算机考试 Word 文档.doc
  7. CCTV曝光百度 凤巢系统的六大谎言
  8. uni-app接入高德地图SDK实现定位用户城市
  9. java usb 断开_Android P开发者选项中的USB调试关闭
  10. 核酸扫码登记体验有感(如何提高OCR的文字正确识别率)