Java 代码实现角谷猜想:计算得到 1 的次数

角谷猜想(也称为 3n+1 猜想或 Collatz 猜想)描述如下:对于任意一个正整数,若为偶数,就把它除以 2;若为奇数,就把它乘以 3 再加 1。经过如此有限次的计算之后,总是会得到数值 1。

本代码实现的功能是:给定一个正整数 n (n≤100,000,000),求经过多少次计算可以得到 1,并输出所需次数 t。

例如:

  • n=5,则 t=5
  • n=10,则 t=6

代码示例:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int count = 0; // 计数器,记录计算次数
        while (n != 1) {
            if (n % 2 == 0) {
                n /= 2;
            } else {
                n = n * 3 + 1;
            }
            count++;
        }
        System.out.println(count);
    }
}

代码说明:

  1. 使用 Scanner 类获取用户输入的正整数 n。
  2. 初始化 count 变量为 0,用于记录计算次数。
  3. 使用 while 循环,不断进行角谷猜想的计算,直到 n 等于 1。
  4. 在循环中,判断 n 是否为偶数,如果是偶数则除以 2,否则乘以 3 再加 1。
  5. 每次计算后,将 count 变量加 1,记录计算次数。
  6. 循环结束后,输出 count 的值,即计算所需的次数。

输入格式:

一个正整数 n

输出格式:

一个正整数 t,是计算所需的次数。

Java 代码实现角谷猜想:计算得到 1 的次数

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

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