0 Daumen
1,6k Aufrufe

Hallo, ich bin ein Programmierneuling, und komme bei dieser Aufgabe nicht weiter.

n = 10

wenn n positiv ist soll es 2 * 4 * 6.... rechnen, also (n -2) * (n -4) usw...

wenn n negativ ist, soll es 1 * 3 * 5... rechnen, also (n- 2) * ( n- 4) usw...

Die Aufgabe habe ich verstanden, aber einen Fehler gibt er mir immer noch an. Übrigens programmiere ich in java

Avatar von

Unbenannt.JPG

hier ist das bild dazu

Ich vermute, dass du das Unterwellte einfach weglassen kannst.

Wenn nicht schreibe mal noch ein " if " vor die Klammer.

n = 10

wenn n positiv ist soll es 2 * 4 * 6.... rechnen, also (n -2) * (n -4) usw...

wenn n negativ ist, soll es 1 * 3 * 5... rechnen, also (n- 2) * ( n- 4) usw...

Meinst du

n = 10

wenn n gerade ist soll es 2 * 4 * 6.... rechnen, also (n -2) * (n -4) usw...

wenn n ungerade ist, soll es 1 * 3 * 5... rechnen, also (n- 2) * ( n- 4) usw...

Wozu ist n=10 gegeben? 10 ist gerade (und positiv). Da fällt der zweite Fall sowieso weg.

Ja, sorry.... logisch gerade bzw. ungerade

Dass n  eine x beliebige Zahl ist, ist vorraussetzung. 10 ist nurein Beispiel. Allerdings sollte das Programm auch bei 11 eine Lösung finden.

Lass dich mal hiervon inspirieren:

https://www.stacklounge.de/794/wie-programmiere-ich-das-fakultat

Bei geraden n kannst du auch

(n/2)! * 2^{n/2} rechnen.

Deine Rechnung ist natürlich einfacher (wenn sie denn mal funkioniert).

1 Antwort

0 Daumen
 
Beste Antwort

Das folgende Programm löst vermutlich Dein Problem.

 public static void main(final String... args){
    int n = 10;
    int sum = 1; // nenne das besser prod (für Produkt)

    // n ist gerade (n%2 ==0 -> ist ohne Rest durch 2 teilbar?
    if(n%2 == 0){
      while(n >= 2){
        if(n%2 == 0){
            sum *= n;
        }
        n--;
      }
    } else {
        while(n >= 1){
            if(n%2 == 1){
              sum *= n;
            }
        n--;
        }
    }
    System.out.println(sum);
}


Stelle gerne Rückfragen, wenn etwas unklar sein sollte.

Avatar von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community