2016-04-27 3 views
-5

Ok in dieser Methode soll ich die faktorielle Berechnung nur mit der Evens berechnen. Wenn ich zum Beispiel 7 für n eingegeben habe, würde ich 6 * 4 * 2 = 48 erwarten. Ich soll den Code reparieren, damit er funktioniert. Ich habe jetzt seit einer Stunde versucht und weiß nicht, was ich falsch mache. Hier ist mein Code:Sogar faktorielle Methode in Java. Ich habe alles versucht und kann es nicht herausfinden

int p07EvenFactorial(int n) { 
    if (n % 2 == 1) { 
     n--; 
    } 
    int fact = 1; 
    for (int i = n; i > 0; i--) { 
     fact = fact + 2 * i; 
    } 
    return fact; 
} 
+2

Wenn Sie nur die geraden Zahlen verwenden möchten, würde es dann nicht sinnvoll zu reduzieren ' Ich statt zwei durch zwei und benutze 'Tatsache * = ich;'? – Tom

+0

Wie würden Sie das schreiben, wenn es kein Code wäre? Denken Sie zuerst an das Problem in Englisch, finden Sie das Muster (die Schleife), und dann konvertieren Sie es in Code. – Krease

+0

Übrigens sagt Wikipedia, dass es [sogar Doppelfactorials] genannt wird (https://en.wikipedia.org/wiki/Double_factorial). – Pang

Antwort

0

wie etwa

int p07EvenFactorial(int n) { 
    if (n % 2 == 1) { 
     n--; 
    } 
    int fact = 1; 
    for (int i = 2; i <= n; i = i + 2) { 
     fact = fact * i; 
    } 
    return fact; 
} 
+0

Oh das macht so viel Sinn !! Vielen Dank :) – LearningToCodePlzHelp

0

Wie über dieses

public int fact(int n) { 
     if(n % 2 ==1){ 
      n = n -1; 
     } 
     if(n == 0){ 
      return 1; 
     } else { 
      return n*fact(n-2); 
     } 
}