Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 冰雹:循环为#1-#200_Java - Fatal编程技术网

Java 冰雹:循环为#1-#200

Java 冰雹:循环为#1-#200,java,Java,冰雹问题包括取x,如果x是偶数,则将其除以2。如果它是奇数,乘以3,再加1。继续这个,你会得到一个重复的4,2,1,4,2,1。。。 我在创建循环并让它打印输入#1-#200的解决方案时遇到问题 我尝试在for循环中添加for循环、while循环和while循环。我想不出在经过一次等式之后如何使变量增加 我想出了如何使用输入来编写代码。但在这里我试着加入一个for循环,但它打印“1”,就这样 for (int i = 200; i <= 200; i--) { System.out

冰雹问题包括取x,如果x是偶数,则将其除以2。如果它是奇数,乘以3,再加1。继续这个,你会得到一个重复的4,2,1,4,2,1。。。 我在创建循环并让它打印输入#1-#200的解决方案时遇到问题

我尝试在for循环中添加for循环、while循环和while循环。我想不出在经过一次等式之后如何使变量增加

我想出了如何使用输入来编写代码。但在这里我试着加入一个for循环,但它打印“1”,就这样

for (int i = 200; i <= 200; i--) {
    System.out.print(i + ", ");

    while (i > 4) {
        if (i % 2 == 0) {
            int i1 = i / 2;
            System.out.print(i1 + ", ");
            i = i1;
        }
        else {
            int i1 = i * 3 + 1;
            System.out.print(i1 + ", ");
            i = i1;
        }
    }

    System.out.println(" ");
}
for(int i=200;i 4){
如果(i%2==0){
int i1=i/2;
系统输出打印(i1+“,”);
i=i1;
}
否则{
int i1=i*3+1;
系统输出打印(i1+“,”);
i=i1;
}
}
System.out.println(“”);
}

您正在覆盖循环计数器。因此,当你用x=200处理完冰雹问题后,你不会用x=199开始,而是用x=3

其次,您没有尝试从1到200的值,而是尝试所有小于或等于200的值。这也包括负数。因此,程序以无限循环结束

我的解决方案是引入一个额外的整数j,在for循环开始时用i值初始化,然后继续对该整数j进行减法等操作。 为了使外部for循环有限,我将条件切换为I>0。这样,当你处理完x=1的冰雹问题后,循环将停止

for (int i = 200; i > 0; i--) {
        int j = i
         System.out.print(i + ", ");

         while (j > 4) {

            if (j % 2 == 0) {
               int i1 = j / 2;
               System.out.print(i1 + ", ");
               j = i1;

            }
            else {
               int i1 = j * 3 + 1;
               System.out.print(i1 + ", ");
               j = i1;
            }
         }
         System.out.println(" ");

      }