python实现考拉兹猜想(Collatz conjecture)案例

题目描述

考拉兹猜想(Collatz conjecture)又称奇偶归一猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2。如此循环,最终都能得到1。

编写一个程序,输入一个正整数,打印其考拉兹序列。

输入格式

1个>1的正整数

输出格式

以空格分隔的考拉兹序列。

输入样例

在这里给出一组输入。例如:5

输出样例

在这里给出相应的输出。例如:16 8 4 2 1

源代码

def collatz_sequence(n):
    sequence = [n]
    while n != 1:
        if n % 2 == 0:
            n = n // 2
        else:
            n = n * 3 + 1
        sequence.append(n)
    return sequence

# 输入一个正整数
num = int(input("请输入一个正整数:"))

# 打印考拉兹序列
sequence = collatz_sequence(num)
print(" ".join(str(x) for x in sequence))

这段代码定义了一个名为 collatz_sequence 的函数,用来生成考拉兹序列。该函数接受一个正整数 n 作为参数,并返回以 n 为起点的考拉兹序列。

在主程序中,我们首先通过 input 函数获取用户输入的正整数。然后调用 collatz_sequence 函数生成考拉兹序列,并用空格将序列中的数字连接成一个字符串进行输出。

运行代码并输入样例中的数字5,输出结果为:

16 8 4 2 1

这就是输入的正整数5对应的考拉兹序列。

© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享