Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » For Schleife; Fakultät erstellen. » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen For Schleife; Fakultät erstellen.
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
forschleifenschreiber
Grünschnabel


Dabei seit: 10.04.2018
Beiträge: 1

For Schleife; Fakultät erstellen. Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :/
10.04.2018 13:26 forschleifenschreiber ist offline E-Mail an forschleifenschreiber senden Beiträge von forschleifenschreiber suchen Nehmen Sie forschleifenschreiber in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
10.04.2018 14:47 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
ElAntonio
Grünschnabel


Dabei seit: 10.04.2018
Beiträge: 3

FOr schleife Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.
10.04.2018 19:28 ElAntonio ist offline Beiträge von ElAntonio suchen Nehmen Sie ElAntonio in Ihre Freundesliste auf
NixJava
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
10.04.2018 20:40
ElAntonio
Grünschnabel


Dabei seit: 10.04.2018
Beiträge: 3

For schleife Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 (
11.04.2018 18:21 ElAntonio ist offline Beiträge von ElAntonio suchen Nehmen Sie ElAntonio in Ihre Freundesliste auf
ElAntonio
Grünschnabel


Dabei seit: 10.04.2018
Beiträge: 3

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

VIELEN DANK AN ALLE,
Dank eurer Hilfe, habe ich das ganze verstanden!
DANKE!
11.04.2018 18:36 ElAntonio ist offline Beiträge von ElAntonio suchen Nehmen Sie ElAntonio in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Informatik in der Schule » For Schleife; Fakultät erstellen.