Bräuchte nochmal Hilfe mit dieser Aufgabe:
public class CalcSomething {
public static void main( String[] args ) {
System.out.println( c( 2, 5 ) );
}
public static int c( int a, int b) {
return ( b == 0 ) ? 1 : a * c( a, b-1);
}
}
Wir sollen die Aufrufe der rekursiven Methode c() in eine Tabelle eintragen und die jeweiligen Rückgabewerte.
Das Ergebnis ist ja 32 sprich 2^5. Mein a ist 2 und mein b 5 oder? Jetzt ist mir aber nicht klar wie man das aufschreiben soll. Es müssen insgesamt 6 rekursive Aufrufe sein.
Habe bisher nur das: (b == 0) ? 1 : 2 * c( 2, 5-1). heißt das nun das ich das eintragen muss:
c( 2, 5-1) ist dann
c( 2, 4-1)
c( 2, 3-1)
c( 2, 2-1)
c( 2, 1-1)
c( 2, 0)
Wie berechne ich dann die Rückgabewerte?
Bitte wer kann mir helfen und das erklären?
public class CalcSomething {
public static void main( String[] args ) {
System.out.println( c( 2, 5 ) );
}
public static int c( int a, int b) {
return ( b == 0 ) ? 1 : a * c( a, b-1);
}
}
Wir sollen die Aufrufe der rekursiven Methode c() in eine Tabelle eintragen und die jeweiligen Rückgabewerte.
Das Ergebnis ist ja 32 sprich 2^5. Mein a ist 2 und mein b 5 oder? Jetzt ist mir aber nicht klar wie man das aufschreiben soll. Es müssen insgesamt 6 rekursive Aufrufe sein.
Habe bisher nur das: (b == 0) ? 1 : 2 * c( 2, 5-1). heißt das nun das ich das eintragen muss:
c( 2, 5-1) ist dann
c( 2, 4-1)
c( 2, 3-1)
c( 2, 2-1)
c( 2, 1-1)
c( 2, 0)
Wie berechne ich dann die Rückgabewerte?
Bitte wer kann mir helfen und das erklären?