循环3n加1问题
package 第二章;
import java.util.Scanner;
//int 32位整数
/*
* 猜想:对于任意大于一的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半 经过若干次变换 一定会使n变为1.
* 例如,
* 3->10->5->16->8->4->2->1
* 输入n,输出变换次数。n<=10的九次方
* 样例输入:
* 3
* 样例输出:
* 7
* */
public class 循环3n加1问题 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
//注意数据类型的大小
long n= in.nextLong();
int count=0;
while(n>1) {
if(n%2==0) {
n=n/2;
}
else {
n=3*n+1;
}
count++;
}
System.out.println(count);
}
}
import java.util.Scanner;
//int 32位整数
/*
* 猜想:对于任意大于一的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半 经过若干次变换 一定会使n变为1.
* 例如,
* 3->10->5->16->8->4->2->1
* 输入n,输出变换次数。n<=10的九次方
* 样例输入:
* 3
* 样例输出:
* 7
* */
public class 循环3n加1问题 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
//注意数据类型的大小
long n= in.nextLong();
int count=0;
while(n>1) {
if(n%2==0) {
n=n/2;
}
else {
n=3*n+1;
}
count++;
}
System.out.println(count);
}
}