import java.util.Scanner;
/**
* 卡拉兹猜想:
* 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。
* 这样一直反复砍下去,最后一定在某一步得到 n=1。
* 对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1?
* 解题重点:
* 1.输入整数用Scanner in = new Scanner(System.in);int n = in.nextInt();
*/
public class Basic1001 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int counts = 0;
while (n != 1) {
if (n % 2 == 0) {
n = n / 2;
} else {
n = (3 * n + 1) / 2;
}
counts++;
}
System.out.println(counts);
}
}
PAT乙_1001
于 2022-01-04 15:46:07 首次发布