Java :: Aufgabe #13 :: Lösung #3

3 Lösungen Lösungen öffentlich
#13

Zahlenfolge berechnen und fortsetzen

Anfänger - Java von pocki - 24.11.2012 um 19:50 Uhr
Es soll eine Zahlenfolge wiefolgt berechnet werden:
Die nacheinander folgenden gleichen Zahlen werden gezählt und zusammen mit der Zahl ausgegeben.
Aus der neu berechneten Zahlenfolge errechnet sich die nächste.

Beispiel:
1. Folge: 112
2. Folge: 2112 (2 Einser und 1 Zweier)
3. Folge: 122112 (1 Zweier, 2 Einser, und 1 Zweier)
usw.

Es soll nun mit dieser ersten Folge startend die 15. Folge berechnet und ausgegeben werden.
Wenn mehrstellige Zahlen vorkommen sind diese gleich auszugeben. Bsp: 12 Einser = 121
#3
vote_ok
von 0 (0 Punkte) - 22.01.2021 um 22:18 Uhr
Quellcode ausblenden Java-Code
package de.patrick260.trainYourProgrammer.exercise_13;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class ZahlenfolgeBerechnenUndFortsetzen {

    public static void main(String[] args) {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("Bitte gebe eine Zahlenfolge ein: ");

        String input = "";
        try {
            input = reader.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }

        while (!isNumber(input)) {
            System.out.println("Invalid input!");
            System.out.print("Bitte gebe eine Zahlenfolge ein: ");
            try {
                input = reader.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        for (int i = 0; i < 15; i++) {
            input = getNext(input);
            System.out.println((i + 1) + ". Folge: " + input);
        }

    }

    public static String getNext(String s) {

        String ss = "";
        char last = s.charAt(0);
        int count = 1;

        for (int i = 1; i < s.length(); i++) {

            if (last == s.charAt(i)) {
                count++;
            } else {
                ss = ss + count + last;
                count = 1;
                last = s.charAt(i);
            }

        }

        ss = ss + count + last;
        return ss;
    }

    public static boolean isNumber(String s) {

        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) != '1' && s.charAt(i) != '2' && s.charAt(i) != '3' && s.charAt(i) != '4' && s.charAt(i) != '5' && s.charAt(i) != '6' && s.charAt(i) != '7' && s.charAt(i) != '8' && s.charAt(i) != '9' && s.charAt(i) != '0') {
                return false;
            }
        }
        return true;
    }

}
package de.patrick260.trainYourProgrammer.exercise_13;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class ZahlenfolgeBerechnenUndFortsetzen {

    public static void main(String[] args) {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("Bitte gebe eine Zahlenfolge ein: ");

        String input = "";
        try {
            input = reader.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }

        while (!isNumber(input)) {
            System.out.println("Invalid input!");
            System.out.print("Bitte gebe eine Zahlenfolge ein: ");
            try {
                input = reader.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        for (int i = 0; i < 15; i++) {
            input = getNext(input);
            System.out.println((i + 1) + ". Folge: " + input);
        }

    }

    public static String getNext(String s) {

        String ss = "";
        char last = s.charAt(0);
        int count = 1;

        for (int i = 1; i < s.length(); i++) {

            if (last == s.charAt(i)) {
                count++;
            } else {
                ss = ss + count + last;
                count = 1;
                last = s.charAt(i);
            }

        }

        ss = ss + count + last;
        return ss;
    }

    public static boolean isNumber(String s) {

        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) != '1' && s.charAt(i) != '2' && s.charAt(i) != '3' && s.charAt(i) != '4' && s.charAt(i) != '5' && s.charAt(i) != '6' && s.charAt(i) != '7' && s.charAt(i) != '8' && s.charAt(i) != '9' && s.charAt(i) != '0') {
                return false;
            }
        }
        return true;
    }

}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2111722

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.