C++解角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。若输入自然数为1,则不需要运算,运算次数为1(用循环和递归分别实现)
角谷定理
题目描述
角谷定理:输入一个自然数,若为偶数,则把它除以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(用循环和递归分别实现)相关推荐
- Java解决角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。
一.题目分析 2.角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 分析:假设一个数为n,定义一个 ...
- 角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。
角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出 22 11 34 17 5 ...
- 角谷定理python每次输出数_角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。...
角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出 22 11 34 17 5 ...
- java角谷_java实现递归设计——数鸭子和角谷定理
java实现递归设计--数鸭子和角谷定理 java实现递归设计--数鸭子和角谷定理 一 .题目分析 题目一:一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只.这样他经过了七个村子后还 ...
- 角谷定理python输出变化过程_角谷定理。
角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. (1) 问题分析: 首先判断输入的自然数是不是1 ...
- java角谷_Java:利用递归方法实现角谷定理
问题描述: 角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出 22 11 3 ...
- java角谷_JAVA 角谷定理 递归
角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出 22 11 34 17 5 ...
- 角谷定理python_递归算法实现角谷定理
问题重述: 角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出22 11 34 ...
- 赶鸭子;角谷定理;java实现
题目分析 目的: 掌握递归程序设计的方法.明确递归的概念,通过对问题的分析,找出递归关系以及递归出口以对问题进行递归结构设计: 掌握递归程序转换为非递归程序的方法. 要求: 用递归方法设计下列各题,并 ...
最新文章
- 学习资源:在线学习 Python(一)
- python中匿名函数的作用_Python 中的匿名函数,你会用吗
- PHP 在 Nginx 下主动断开连接 Connection Close 与 ignore_user_abort 后台运行
- Opengl-帧缓冲(一个新的缓冲对象,想一下深度和模板缓冲)
- python学习_数据处理编程实例(一)
- 【Python】Python一行代码能做什么,30个实用案例代码详解
- 市场规模占全国4成,广东物联网市场发展强劲
- MIP开发教程(三) 使用MIP-CLI工具调试组件
- java回调函数 final_java中带回调函数的字符串替换,类似js中的replace(rgExp,function)...
- Django案例:显示图书信息
- Python绘制匀加速运动质点的速度-时间图像与位移-时间图像
- PD2SE-Net:植物病害诊断和严重性评估网络(首次)
- LTT (Linux Trace Toolkit) 简介
- 管理账目的计算机软件有哪些,最好的记账软件哪个好
- verilog——74X138译码器及其应用
- Could not instantiate the executor. Make sure a planner module is on the classpath
- 网络游戏广告植入案例
- Vijos P1234 口袋的天空
- 计算机内存占用过高,如果内存使用率过高怎么办? Win10计算机内存占用率高的原因和解决方案...
- 开源星空照片_如何拍摄星空的好照片
热门文章
- 推荐个NodeJS的入门教程 — Node入门/nodebeginner
- 【算法竞赛学习笔记】Link-Cut-Tree基础-超好懂的数据结构
- 千亿龙头开启价格血拼,四个重要消息将影响这几个板块的走势
- Poco的介绍和入门教学
- 拆解理想汽车Q3财报:收入增速继续下滑,年内两次更换首席技术官
- 计算机考试保存文档名字,计算机考试 Wor 文档计算机考试 Word 文档.doc
- CCTV曝光百度 凤巢系统的六大谎言
- uni-app接入高德地图SDK实现定位用户城市
- java usb 断开_Android P开发者选项中的USB调试关闭
- 核酸扫码登记体验有感(如何提高OCR的文字正确识别率)