Java :: Aufgabe #13 :: Lösung #3
3 Lösungen
#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
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
von 0 (0 Punkte)
- 22.01.2021 um 22:18 Uhr
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
Seite 1 von 0
1
