Я хочу написать число, затем выполнить операцию (если N четное, то N / 2, или если N нечетное, то (N * 3) +1) и делать это, пока новое число не станет равным 1 - PullRequest
0 голосов
/ 27 декабря 2018

Я хочу создать алгоритм, который может взять число, которое я напишу, и затем выполнить операцию, затем взять ответ и повторять с новым числом, пока число не станет равным 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 голосов
/ 27 декабря 2018

Вы не меняете amount на каждую итерацию.Например,

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

System.out.println(amount);
...