Collatz猜想的Java代码

Collatz猜想的Java代码,java,Java,我对Java非常陌生,所以这解释了很多。我想写一个代码,将偶数除以2,直到答案达到1。例如,16>8>4>2>1,将奇数乘以3并加1。但我无法让它计算出达到目标所需的步骤数。也请帮我写一个比我现有的更好的代码 package test; import java.util.Scanner; public class Test { public static void main(String[] args){ Scanner n=new Scanner

我对Java非常陌生,所以这解释了很多。我想写一个代码,将偶数除以2,直到答案达到1。例如,16>8>4>2>1,将奇数乘以3并加1。但我无法让它计算出达到目标所需的步骤数。也请帮我写一个比我现有的更好的代码

    package test;
    import java.util.Scanner;
    public class Test {
    public static void main(String[] args){
        Scanner n=new Scanner(System.in);
        int a;
        System.out.println("Enter a value");
        a=n.nextInt();
        System.out.print(+a  );
        for(;;){
            if(a==1){
                break;
            }
            else if(a%2==0){
                a=a/2;
                System.out.print(a+",");
            }
            else if(a%2!=0){
                a=a*3+1;
                System.out.println(a+",");
            }
        }
        }}

“但我无法让它计算到达一个“A计数器”所需的步数?”我无法让它计算步数”--请解释你的意思?为什么不能这样做?注意:
System.out.println(+a)中的
+
没有任何作用是否证明每个数字最终都会达到1?例如:16>8>4>2>1程序应该说“16达到1需要4个步骤”。但我无法让它计算达到一个“A计数器”所需的步骤数?我无法让它计算步骤数“请解释一下你的意思?为什么不能这样做?注意:
System.out.println(+a)中的
+
没有任何作用是否证明每个数字最终都会达到1?例如:16>8>4>2>1程序应该说“16达到1需要4个步骤。