输入一个正整数,若为偶数,则除以2,若为大于1的奇数,则乘以3加1
时间: 2023-05-19 17:07:04 浏览: 137
这是著名的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,这取决于初始的正整数。
用MATLAB编写一个正整数n,如果是偶数则除以2,如果是奇数则乘以3加1,得到的新数继续按上述规则运算,最后结果都为1
好的,以下是用MATLAB编写的程序,可以实现对输入的正整数n按照规则进行运算,直到最后结果为1:
```matlab
n = input('请输入一个正整数n:');
while n ~= 1
if mod(n, 2) == 0
n = n / 2;
else
n = n * 3 + 1;
end
disp(['当前n的值:', num2str(n)]);
end
```
你可以将这段代码复制到MATLAB中运行,然后输入一个正整数n,程序将按照规则进行运算,直到最后结果为1,并输出每一步的结果。希望对你有帮助!如果还有其他问题,请随时提问。