Kurseinheit 6

Dr Franke Ghostwriter
KE 6

Hallo zusammen,

ich stehe irgendwie auf dem Schlauch kann mir kurz jemand hier bei Helfen?

Wenn ich p=5 und n= 2 angebe bekomme ich 25 raus.

1)public class Exponentation
2){
3)
4) public double power(int p, int n)
5) {
6) if (n < 0) {
7) return 1.0 / power(p, -n);
8) }
9) if (n == 0) {
10) return 1;
11) }
12) return p * power(p, n - 1);
13) }
14)}


Verstehe ich das richte, bei 12 die Formle am ende so aus sieht: 5 * 1 * 5?
 
im grund hast Du recht: Ich bin leider kein Spezialist, aber ich versuch's trotzdem mal zu erklären:
Die Rekursion wird solange wiederholt, bis der Basisfall eintritt. Das ist in Deinem Fall bei n = 0. Wir beginnen also mit n = 2 beim ersten Durchlauf:
return 5 * (), dann ist n = 1, also 5 * 5 * (), dann ist n = 0 und es wird 1 zurückgegeben also 5 * 5 * 1
Die beiden Klammern sollen bedeuten, dass die Methode noch mal augerufen wird.

Also wie gesagt: ohne Gewähr und viel Glück für morgen!
Gruß
Iris
 
Oben