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
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 = 10wenn 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 = 10wenn 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).
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.
Ein anderes Problem?
Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos