我是靠谱客的博主 高挑小蝴蝶,最近开发中收集的这篇文章主要介绍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(用循环和递归分别实现)的全部内容,希望文章能够帮你解决C++解角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。若输入自然数为1,则不需要运算,运算次数为1(用循环和递归分别实现)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部