Rekursion in Java

Neue Frage »

Auf diesen Beitrag antworten »
Ersti Rekursion in Java

Meine Frage:
Ich habe eine folgendes Problem. Das hier ist die Aufgabe:
Uberführen Sie ein n element N in p-adische Darstellung. Sie können einen Gültigkeitsbereich für p von [2;16] annehmen. Die Methode soll das Ergebnis in einem Stringzurück geben. Beispiele:
rebase (5,2) = "101"
rebase (237,16) = "ED"
Ich weis nicht wie ich dual etc definieren soll. Ich habe so viele Ansätze schon ausprobiert und weis immer noch nicht.

Meine Ideen:
public static String rebase(int n, int p){
if (p==2)
{
return new String(dual(n).toString());

}
else if (p==8)
{
return new String(octal(n).toString());
etc.
private static String dual(int n) {
String solution ="";
return solution;
}
private static String octal(int n) {
String solution ="";
return solution;
}
 
Auf diesen Beitrag antworten »
eulerscheZahl

Es gibt ein allgemeingültiges Verfahren zum Unwandlung in eine andere Basis:
solange die Zahl > 0 ist:
* Füge Zahl modulo Basis vorne an die Zahl an
* Teile die Zahl durch die Basis (der Teil nach dem Komma wird abgeschnitten)

Beispiel: Umwandlung von 17 in Basis 3:
code:
1:
2:
3:
17 / 3 = 5 R 2
 5 / 3 = 1 R 2
 1 / 3 = 0 R 1

der Rest (Ergebnis von modulo) ergibt von unten nach oben gelesen 122.
1*3^2 + 2*3^1 + 2*3^0 = 9 + 2*3 + 2*1 = 17, die Rechnung geht also auf.

Ob du das jetzt rekursiv oder interativ definierst, sei dir überlassen (wenn nicht Rekursion verlangt wird). Von dual und oktal würde ich absehen, da es ja auch unabhängig von der Basis machbar ist, also warum für jede Basis eine eigene Funktion schreiben.

Wenn du damit nicht weiterkommst, einfach melden.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »