Heyho,
ich habe die Aufgabe, das vorgegebene Passwort "geheim" rekursiv über die Methode calculatePassword zu bestimmen und im Fall von check, an der letzten Stelle (vom char-Array) sprich 5 (c.length-1) mit isValidPassword zu überprüfen.
Ich habe das Problem schon in einem nicht rekursiven Programm mit verschachtelten for-Schleifen gelöst, wobei ich für jeden Buchstaben das Alphabet "durchgegangen" bin und in der letzten for-Schleife überprüft habe, ob es das vorgegebene Passwort ist. Ich scheitere aber sehr an der rekursiven Lösung dieses Problems, hier ist mein bisheriger Code, welcher wahrscheinlich nicht so viel Sinn ergibt, hat jemand einen Tipp für mich? Des Weiteren glaube ich, es macht eigentlich keinen Sinn den String "geheim" zu erstellen und an einer Stelle zu überprüfen, da man dadurch die Aufgabe verfläscht.
LG
ich habe die Aufgabe, das vorgegebene Passwort "geheim" rekursiv über die Methode calculatePassword zu bestimmen und im Fall von check, an der letzten Stelle (vom char-Array) sprich 5 (c.length-1) mit isValidPassword zu überprüfen.
Ich habe das Problem schon in einem nicht rekursiven Programm mit verschachtelten for-Schleifen gelöst, wobei ich für jeden Buchstaben das Alphabet "durchgegangen" bin und in der letzten for-Schleife überprüft habe, ob es das vorgegebene Passwort ist. Ich scheitere aber sehr an der rekursiven Lösung dieses Problems, hier ist mein bisheriger Code, welcher wahrscheinlich nicht so viel Sinn ergibt, hat jemand einen Tipp für mich? Des Weiteren glaube ich, es macht eigentlich keinen Sinn den String "geheim" zu erstellen und an einer Stelle zu überprüfen, da man dadurch die Aufgabe verfläscht.
LG
Java:
static String calculatePassword(int check, char[] c) {
Out.println(check);
if (check == c.length - 1) {
for (char c0 = 'a';c0 <= 'z'; c0++) {
c[check] = c0;
String password = new String(c);
if (isValidPassword(password)) {
return password;
}
}
} else {
String right = "geheim";
char[] r = right.toCharArray();
for (char c0 = 'a';c0 <= 'z'; c0++) {
c[check] = c0;
if (c[check] == r[check]) {
continue;
}
}
check++;
return calculatePassword(check, c);
}
return null;
}
Zuletzt bearbeitet: