/** * En klass som ber användaren om ett positivt heltal * och striver ut 3N+1-serien för det heltalet. */ public class ThreeNPlusOne { public static void main(String[] args) { int n = getPositiveInt(); printSeries(n); } /** * Tvingar användaren att ge ett positivt heltal. * @return Ett positivt heltal från användaren. */ public static int getPositiveInt() { int n = getInt(); while (n < 1) { n = getInt(); } return n; } /** * Ber användaren att skriva in ett positivt heltal. * Använder TextIO för att läsa in talet. * Kontrollerar inte om heltalet är positivt. * @return Ett heltal. */ public static int getInt() { System.out.println("Skriv ett positivt heltal!"); return TextIO.getInt(); } /** * Skriver ut 3N+1-serien för det angivna heltalet. * @param n Talet serien ska börja på. Måste vara positivt. */ public static void printSeries(int n) { System.out.println(n); while (n != 1) { n = nextN(n); System.out.println(n); } } /** * Ger nästa tal i 3N+1-serien * @param oldN Talet att utgå ifrån * @return Talet efter oldN */ public static int nextN(int oldN) { int newN; if (oldN % 2 == 0) { newN = oldN / 2; } else { newN = (oldN * 3) + 1; } return newN; } }