问题重述:

角谷定理。输入一个自然数,若为偶数,则把它除以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_递归算法实现角谷定理相关推荐

  1. 洛谷P2181答案C语言,洛谷P2181 对角线(组合数)

    题目描述 对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点.请求楚图形中对角线交点的个数. 例如,6边形: 输入输出格式 输入格式: 第一行一个n,代表边数. 输出格式: 第一行输出交点数 ...

  2. 《OpenCV3编程入门》学习笔记10 角点检测(二)Shi-Tomasi角点检测

    10.2 Shi-Tomasi角点检测 10.2.1 Shi-Tomasi角点检测:goodFeaturesToTrack()函数 1.定义:   Harris算法改进,若矩阵M行列式的值与M的迹中较 ...

  3. 《OpenCV3编程入门》学习笔记10 角点检测(一)Harris角点检测

    第10章 角点检测 10.1 Harris角点检测 10.1.1 角点 1.图像特征类型: (1)边缘 (2)角点(感兴趣点) (3)斑点(感兴趣区域) 2.角点定义: (1) 一阶导数(灰度的梯度) ...

  4. WPF画N角芒星,正N角星

    计算顶部三角形坐标方法: 1 /// <summary> 2 /// 获取顶三角形坐标 3 /// </summary> 4 /// <param name=" ...

  5. 输入法中的全角和半角是什么,角又是什么

    角是日语的角,不是中文的角,这里的意思是四边形,日语叫四角形,也有道理,有四个角嘛. 全角就是这个四边形是完全的,也就是方的,中文的字正好是方的. 半角就不用多说了,就是半个四边形,普通的英文字母正好 ...

  6. php字符串处理之全角半角转换(正则匹配全角字符思路)

    半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路. 一.概念 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)例如:/[\x{3010} ...

  7. 计算机视觉(角点检测)- 2 - Shi-Tomasi 角点检测

    计算机视觉(角点检测)- 2 - Shi-Tomasi 角点检测 学习前言 一.Shi-Tomasi 角点检测 二.OpenCV中API介绍    ```corners = cv2.goodFeatu ...

  8. 计算机中全半角转换是干什么的,全角半角切换快捷键(电脑全角和半角怎么切换)...

    搜狗输入法的全角半角切换键是:shift+空格键 (如当前在半角状态,按shift+空格键可以切换至全角:如当前在全角状态,按shift+空格键可以切换至半角) 半角与全角切换的意义 1.添加输入法不 ...

  9. linux全角和半角的切换,全角和半角

    A 什么是全角和半角? (1)全角---指一个字符占用两个标准字符位置. 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符.一般的系统命令是不用全角字符的,只是 ...

最新文章

  1. 构造数独 算法及代码实现
  2. 20211108 能观能控,可稳可测
  3. Java虚拟机:垃圾回收机制与垃圾收集器
  4. 前端vue显示柱状图_Vue接入Echarts 显示柱状图饼图
  5. sqlserver 运行正則表達式,调用c# 函数、代码
  6. python中with as用法_python 中关于with...as的用法
  7. Outlook2016怎么修改默认数据库
  8. java inject例子_java – 手动实例化@InjectMock带注释的字段
  9. 无意中发现的一份清华大佬的刷题笔记!
  10. MKNetworkKit 使用
  11. 【笔记】UL/DL(上行/下行)方向上每个符号IQ的时序关系(U平面和C平面)
  12. 腾讯云的云数据库MYSQL配置
  13. 【JQuery】数据
  14. 读书笔记 effctive c++ Item 20 优先使用按const-引用传递(by-reference-to-const)而不是按值传递(by value)...
  15. 随机数算法 java_最全的java随机数生成算法
  16. Creo 6.0软件安装教程|兼容WIN10
  17. SPSS进行问卷数据的效度分析及结果解读(问卷数据统计分析第3步(转载)
  18. uniapp H5公众号errMsg: “onMenuShareAppMessage:fail, the permission value is offline verifying“
  19. Unity 5.3制作VR项目
  20. 树莓派一键变身无线路由器

热门文章

  1. C语言算数运算符顺序
  2. FL Studio杂项设置页讲解(下)
  3. I3C协议Single Data Rate(SDR)模式研读(五):热加入机制、带内中断以及第二主机功能(hot-join、In-Band Interrupt、Secondary Master)
  4. 四种类型的数据节点 Znode
  5. net start mysql报错:发生系统错误 5。拒绝访问。
  6. AtCoder Beginner Contest 163 A Circle Pond 圆周率
  7. 2017寒假作业 计科1501 李俊01
  8. MATLAB Mann-Kendall突变检验 (mk突变检验)
  9. 2017年计算机春季高考试题,山东省2017年春季高考数学试题(PDF版,含答案)
  10. aspnet core 3.1 Kestrel Protocols Http1AndHttp2