一个正整数,若为偶数,则把它除以2,若为大于 1 的奇数,则把它乘以3加1。经过如此有限次运算后,可以得到整数1。 求经过多少次运算可得到整数1。
时间: 2023-12-21 22:06:45 浏览: 345
这是著名的“三n+1”问题,可以用循环来解决。代码如下:
```python
n = int(input())
count = 0
while n!=1:
if n%2==0:
n = n//2
else:
n = n*3+1
count += 1
print(count)
```
输入一个正整数n,然后依次执行除以2或乘以3加1的操作,直到n变为1,期间操作次数即为所求。
相关问题
输入一个正整数,若为偶数,则除以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,这取决于初始的正整数。
阅读全文