对于任意一个正整数,若为偶数,就把它除以2;若为奇数,就把它乘 以3再加1。经过如此有限次的计算之后,总是会得到数值1,这就是 精想,现给定一个正整数n(ns100.000.000),求经过多少次计算 可以得到1,输出所需次数。
时间: 2023-05-22 22:05:33 浏览: 197
这个问题是关于编程的问题,可以回答。这是一个经典的算法题,也叫做 Collatz 猜想。下面是可以求解的 Python 代码:
```
def collatz_conjecture(n):
count = 0
while n != 1:
if n % 2 == 0:
n //= 2
else:
n = n * 3 + 1
count += 1
return count
n = int(input("请输入一个正整数n:"))
print("经过", collatz_conjecture(n), "次计算可以得到1。")
```
举个例子,如果输入的 n 是 6,那么输出的结果应该是 8。
相关问题
输入一个正整数,若为偶数,则除以2,若为大于1的奇数,则乘以3加1
这是著名的Collatz猜想,目前还没有被证明或者被反驳。以下是一个简单的Python实现:
```
def collatz(n):
if n == 1:
return [1]
elif n % 2 == 0:
return [n] + collatz(n // 2)
else:
return [n] + collatz(n * 3 + 1)
n = int(input("请输入一个正整数:"))
print(collatz(n))
```
例如,输入13,输出为:
```
[13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
```
输入一个正整数,若为偶数,则除以2,若为大于1的奇数,则乘以3加1。求经过多少次得到数1
这是一个著名的数学问题,被称为“Collatz猜想”。目前还没有被证明,但已经被计算机验证了数百万次。根据计算机验证的结果,对于任何一个正整数,最终都会得到1。至于经过多少次得到1,这取决于初始的正整数。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![m](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)