角谷猜想 (Collatz Conjecture) 算法实现:Python 和 C 代码示例

角谷猜想 (Collatz Conjecture) 是一个著名的数学猜想,它指出对于任何正整数 n,若 n 为偶数,则将 n 除以 2;若 n 为奇数,则将 n 乘以 3 再加 1。通过这样的操作不断进行,最终一定会得到值为 1 的结果。

例如,对于输入的数字 6,经过如下操作序列,最终得到的结果为 1: 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1

使用 Python 实现角谷猜想

可以使用 while 循环来实现这个算法:

num = int(input('请输入一个正整数: '))
while num != 1:
    if num % 2 == 0:
        num //= 2
    else:
        num = num * 3 + 1
    print(num, end=' ')

在上面的代码中,我们先定义一个变量 num 来存储输入的正整数。在 while 循环中,我们不断对 num 进行操作,直到 num 的值变成 1。在每一次循环中,我们首先判断 num 是否为偶数,如果是,则将其除以 2,并将 除以 2 后的结果赋值给 num;否则,将其乘以 3 再加 1,并将运算后的结果赋值给 num。最后,我们使用 print() 函数来输出每次操作后的结果。

使用 C 语言实现角谷猜想

以下是使用 while 循环实现角谷猜想的 C 语言代码:

#include <stdio.h>

int main() {
    int num;
    printf("请输入一个正整数: ");
    scanf("%d", &num);

    while (num != 1) {
        if (num % 2 == 0) {
            num /= 2;
        } else {
            num = num * 3 + 1;
        }
        printf("%d ", num);
    }

    return 0;
}

在上面的代码中,我们先定义一个变量 num 来存储输入的正整数。在 while 循环中,我们不断对 num 进行操作,直到 num 的值变成 1。在每一次循环中,我们首先判断 num 是否为偶数,如果是,则将其除以 2,并将 除以 2 后的结果赋值给 num;否则,将其乘以 3 再加 1,并将运算后的结果赋值给 num。最后,我们使用 printf() 函数来输出每次操作后的结果。

角谷猜想 (Collatz Conjecture) 算法实现:Python 和 C 代码示例

原文地址: https://www.cveoy.top/t/topic/kJMA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录