For Schleife; Fakultät erstellen.

Neue Frage »

Auf diesen Beitrag antworten »
forschleifenschreiber For Schleife; Fakultät erstellen.

Meine Frage:
Hallo,
mir wurde folgende Aufgabe gestellt:
Gegeben den folgenden Code:

int n = 3;
berechnen Sie die Fakultät von n, also das Ergebniss der Multiplikation von
1 * 2 * ... * n.
Im Beispiel wäre das:6
Testen Sie Ihr Programm auch z.B. mit 5 und 10.

Meine Ideen:
int n=3;
for(int i=1;i<=n;i++) {
print(i);
}
Mein Problem hierbei ist, dass ich es zwar hinbekomme die Zahlenreihe 123 usw hinzubekommen, sondern daraus eine zusammenhängende Rechnung zu machen.

int n=3;

for(int i=1; i<=n; ++i) {

println(i*n--);




}
wäre mein zweiter Ansatz gewesen. Dennoch vorab ist da für mich keine Lösung in Sicht großes Grinsen :/
 
Auf diesen Beitrag antworten »
as_string

Du musst zuerst eine Variable anlegen, in der Du am Ende das Ergebnis haben willst, und diese mit 1 (das neutrale Element der Multiplikation) initialisieren.
Dann musst Du in der Schleife zu dieser Ergebnisvariable immer den neuen Faktor "dran-multiplizieren". Dafür kannst Du den Operator "*=" verwenden.
Also in der Schleife so was wie
code:
1:
result *= i;

Gruß
Marco
Auf diesen Beitrag antworten »
ElAntonio FOr schleife

int n=3;

for(int i=1; i<=n; i++) {

println(i*=n--);




}
macht das jetzt so mehr sinn?

ich denke nicht, denn jetzt kommt genau n jedes mal raus.
Ich weiss echt nicht was ich anders machen soll. Mir ist schon bewusst dass ich eine zweite Variable benötige. Aber was Du mir gerade erklärt hast habe ich ehrlichgesagt nicht verstanden.
Ich gehe von 1 schrittweise hoch
1 2 3
deshalb i++
und wenn ich das so hinschreibe dann klappt das ja auch.
Aber sobald ich was multiplizieren willl. klapppt das ganze nicht mehr.
Auf diesen Beitrag antworten »
NixJava

Hallo,

du solltest außerhalb der Schleife einen neuen Integer anlegen und mit 1 initialisieren. Marco hat diesen result genannt. An diese Variable kannst du innerhalb deiner for-Schleife jeweils die Zahlen i=1,2,3,...,n multiplizieren.
Nachdem die Schleife durchlaufen wurde, kannst du das Ergebnis (steht in result) ausgeben.

code:
1:
2:
3:
4:
5:
6:
7:
8:
int n;
// Variable anlegen und initialisieren

for(int i=1; i<=n; i++) {
  // multiplizieren
}

// Ergebnis ausgeben
 
Auf diesen Beitrag antworten »
ElAntonio For schleife

Ich weiss schon dass ich das dranmultiplizieren muss. Das ist ja auch nicht mein Problem.

int n=3;
for(int i = n; i>0;i--){
print(i+"*");





}
print("=");

ich hab das ganze jetzt umgestellt. Dennoch bekomme ich die multiplikation nicht gebacken. Ich bin ein absoluter Anfänger und weiss nicht genau was ihr damit meint.
Generell zeigt mir Processing an, dass ich den Operator *= nicht verwenden kann. Jedes mal wenn ich das schreiben will kreidet er mir das an. Egal in welchem Zusammenhang.

Ausserdem steht jedes mal nach der letzten Ziffer vor dem = ein *.
Kann ich irgendwie einen backslash einfügen?
unglücklich (
Auf diesen Beitrag antworten »
ElAntonio

VIELEN DANK AN ALLE,
Dank eurer Hilfe, habe ich das ganze verstanden!
DANKE!
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »