Java 代码实现角谷猜想:计算得到 1 的次数
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);
}
}
代码说明:
- 使用
Scanner类获取用户输入的正整数 n。 - 初始化
count变量为 0,用于记录计算次数。 - 使用
while循环,不断进行角谷猜想的计算,直到 n 等于 1。 - 在循环中,判断 n 是否为偶数,如果是偶数则除以 2,否则乘以 3 再加 1。
- 每次计算后,将
count变量加 1,记录计算次数。 - 循环结束后,输出
count的值,即计算所需的次数。
输入格式:
一个正整数 n
输出格式:
一个正整数 t,是计算所需的次数。
原文地址: https://www.cveoy.top/t/topic/jqbx 著作权归作者所有。请勿转载和采集!