角谷定理python_递归算法实现角谷定理
问题重述:
角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。
如:输入22,
输出22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
STEP=16
题目分析:
根据题意有:
xn+1=xn2, xn%2=0xn+1=xn×3+1, xn%2=1
最后Xlast=1
算法构造:
根据上述公式可以看出:
函数出口:Xlast=1
函数体:
xn+1=xn2, xn%2=0xn+1=xn×3+1, xn%2=1
根据当前的数字判断其奇偶性,若为偶数,则把它除以2,若为奇数,则把它乘以3加1,然后再次递归判断,直到最后一次的数字为1时跳出函数
算法实现:
#include
using namespace std;
/*
Author:Qiaoxue Zheng
Date:2018/11/15
Dscribtion:To get the steps according to Kakutani Theory
*/
/*
Function:Kakutani
Parameter:
number:natural number
Return:steps
*/
int Kakutani(int number) {
int count = 0;
cout << number<
count++;//count steps
//exit,the last number is 1
if (number == 1) {
return count;
}
//body
else {
if (number % 2 == 0) {//Even numbers
count += Kakutani(number / 2);
return count;
}
else {//Odd number
count += Kakutani(number * 3 + 1);
return count;
}
}
}
//Main function
int main() {
int number = 0;
cout << "please input a int number:";
cin >> number;
cout<
system("pause");
return 0;
}
运行结果:
角谷定理python_递归算法实现角谷定理相关推荐
- 洛谷P2181答案C语言,洛谷P2181 对角线(组合数)
题目描述 对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点.请求楚图形中对角线交点的个数. 例如,6边形: 输入输出格式 输入格式: 第一行一个n,代表边数. 输出格式: 第一行输出交点数 ...
- 《OpenCV3编程入门》学习笔记10 角点检测(二)Shi-Tomasi角点检测
10.2 Shi-Tomasi角点检测 10.2.1 Shi-Tomasi角点检测:goodFeaturesToTrack()函数 1.定义: Harris算法改进,若矩阵M行列式的值与M的迹中较 ...
- 《OpenCV3编程入门》学习笔记10 角点检测(一)Harris角点检测
第10章 角点检测 10.1 Harris角点检测 10.1.1 角点 1.图像特征类型: (1)边缘 (2)角点(感兴趣点) (3)斑点(感兴趣区域) 2.角点定义: (1) 一阶导数(灰度的梯度) ...
- WPF画N角芒星,正N角星
计算顶部三角形坐标方法: 1 /// <summary> 2 /// 获取顶三角形坐标 3 /// </summary> 4 /// <param name=" ...
- 输入法中的全角和半角是什么,角又是什么
角是日语的角,不是中文的角,这里的意思是四边形,日语叫四角形,也有道理,有四个角嘛. 全角就是这个四边形是完全的,也就是方的,中文的字正好是方的. 半角就不用多说了,就是半个四边形,普通的英文字母正好 ...
- php字符串处理之全角半角转换(正则匹配全角字符思路)
半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路. 一.概念 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)例如:/[\x{3010} ...
- 计算机视觉(角点检测)- 2 - Shi-Tomasi 角点检测
计算机视觉(角点检测)- 2 - Shi-Tomasi 角点检测 学习前言 一.Shi-Tomasi 角点检测 二.OpenCV中API介绍 ```corners = cv2.goodFeatu ...
- 计算机中全半角转换是干什么的,全角半角切换快捷键(电脑全角和半角怎么切换)...
搜狗输入法的全角半角切换键是:shift+空格键 (如当前在半角状态,按shift+空格键可以切换至全角:如当前在全角状态,按shift+空格键可以切换至半角) 半角与全角切换的意义 1.添加输入法不 ...
- linux全角和半角的切换,全角和半角
A 什么是全角和半角? (1)全角---指一个字符占用两个标准字符位置. 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符.一般的系统命令是不用全角字符的,只是 ...
最新文章
- 构造数独 算法及代码实现
- 20211108 能观能控,可稳可测
- Java虚拟机:垃圾回收机制与垃圾收集器
- 前端vue显示柱状图_Vue接入Echarts 显示柱状图饼图
- sqlserver 运行正則表達式,调用c# 函数、代码
- python中with as用法_python 中关于with...as的用法
- Outlook2016怎么修改默认数据库
- java inject例子_java – 手动实例化@InjectMock带注释的字段
- 无意中发现的一份清华大佬的刷题笔记!
- MKNetworkKit 使用
- 【笔记】UL/DL(上行/下行)方向上每个符号IQ的时序关系(U平面和C平面)
- 腾讯云的云数据库MYSQL配置
- 【JQuery】数据
- 读书笔记 effctive c++ Item 20 优先使用按const-引用传递(by-reference-to-const)而不是按值传递(by value)...
- 随机数算法 java_最全的java随机数生成算法
- Creo 6.0软件安装教程|兼容WIN10
- SPSS进行问卷数据的效度分析及结果解读(问卷数据统计分析第3步(转载)
- uniapp H5公众号errMsg: “onMenuShareAppMessage:fail, the permission value is offline verifying“
- Unity 5.3制作VR项目
- 树莓派一键变身无线路由器
热门文章
- C语言算数运算符顺序
- FL Studio杂项设置页讲解(下)
- I3C协议Single Data Rate(SDR)模式研读(五):热加入机制、带内中断以及第二主机功能(hot-join、In-Band Interrupt、Secondary Master)
- 四种类型的数据节点 Znode
- net start mysql报错:发生系统错误 5。拒绝访问。
- AtCoder Beginner Contest 163 A Circle Pond 圆周率
- 2017寒假作业 计科1501 李俊01
- MATLAB Mann-Kendall突变检验 (mk突变检验)
- 2017年计算机春季高考试题,山东省2017年春季高考数学试题(PDF版,含答案)
- aspnet core 3.1 Kestrel Protocols Http1AndHttp2