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å
Ö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");
}
}