Kom igångKom igång gratis

Collatz

En rolig liten matematisk kuriositet är att enkla regler kan ge upphov till stora konsekvenser. Till exempel frågar Collatz förmodan om två enkla regler kan reducera vilket heltal som helst till 1.
Regeln formuleras vanligtvis så här:

  • För jämna tal: dela med 2
  • För udda tal: multiplicera med 3, lägg sedan till 1
    Låt oss testa det!

Obs: Om koden tar för lång tid att köra, kontrollera noggrant logiken i if-else-satsen (eller Ledtråden).

Den här övningen är en del av kursen

Java för medelnivå

Visa kurs

Övningsinstruktioner

  • Ange rätt avslutningsvillkor.
  • Anropa en metod för att kontrollera om n är jämnt.
  • Hantera det udda fallet korrekt – det ska bara triggas om det ursprungliga n är udda.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

class Collatz {
  static boolean isEven(int n) {
    return n % 2 == 0;
  }
  
  public static void main(String[] args) {
    int n = 1634;
    int i = 0;
    System.out.print(n);
    // Enter the appropriate termination condition
    while (____) {
      // Call a method to check if n is even
      if (____(n)) {
        System.out.println(" is even");
        n /= 2;
      } // Handle the odd case correctly. All non-even integers are odd
      ____ {
        System.out.println(" is odd");
        n = n * 3 + 1;
      }
      System.out.print(n);
      i += 1;
    }
    System.out.println(" reached in " + i + " steps");
  }
}
Redigera och kör kod