我想写一个数字,然后进行一个运算(如果N为偶数,则为N / 2,或者如果N为奇数,则为(N * 3)+1),直到新数字等于1

时间:2018-12-27 04:42:38

标签: loops while-loop integer conditional-statements

我想创建一个算法,该算法可以接受我写的数字,然后进行运算,然后取答案,并重复新的数字,直到该数字等于1

import java.util.Scanner;

public class Nombres {

   public static void main(String args[]) {
      int amount;
      Scanner keyboard = new Scanner(System.in);

      System.out.print("Inscrivez un nombre");
      amount = keyboard.nextInt();

      while (amount != 1) {

         if (amount % 2 > 0) {
            System.out.println((amount * 3) + 1);
         }
         if (amount % 2 == 0) {
            System.out.println(amount / 2);
         }
         if (amount == 1) {
            System.out.println("FIN");
         }
      }
      if (amount == 1) {
         System.out.println("1 FIN");
      }
   }
}

1 个答案:

答案 0 :(得分:1)

您不会在每次迭代中更改amount。例如

if (amount % 2 == 0)
    amount = amount / 2;
else
    amount = amount * 3 + 1

System.out.println(amount);