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