Algorithmen
-
@manni66 Ich kann nur die Zahl n eingeben, aber der Compiler spuckt danach keinen Wert aus
-
@Finnegan Ich glaube ich hab den Fehler gemacht, dass ich j<=i geschrieben habe anstatt j >= i ?
-
@JohannesK sagte in Algorithmen:
@Finnegan Ich glaube ich hab den Fehler gemacht, dass ich j<=i geschrieben habe anstatt j >= i ?
Ja, ich denke auch.
-
Ich glaube ich habe es jetzt geschafft:
#include <iostream>
#include <iomanip>
using namespace std;int ffunk(int x){ int zahler = 0; for(int i = 0; i <= x; i++){ for(int j = x; j >= i; j--){ zahler = zahler + 1; } } return zahler; } int main(){ int n; cout << "Geben Sie n ein: " << endl; cin >> n; ffunk(n); cout << ffunk(n) << endl; }
-
@JohannesK sagte in Algorithmen:
ffunk(n);
cout << ffunk(n) << endl;Warum wird die Funktion jetzt zweimal aufgerufen?
-
@manni66 So kann mir das Ergebnis angezeigt werden
-
@JohannesK sagte in Algorithmen:
@manni66 So kann mir das Ergebnis angezeigt werden
Offensichtlich brachst du das erste Ergebnis nicht.
-
@manni66 Ich verstehe nicht ganz
-
@JohannesK sagte in Algorithmen:
@manni66 Ich verstehe nicht ganz
Was stellst du dir vor was da jetzt passiert?
-
@Finnegan ist das die Folge (n*(n+1))/2
-
@JohannesK sagte in Algorithmen:
@Finnegan ist das die Folge (n*(n+1))/2
Ich denke schon, dass das die berechnete Funktion ist, ja (wobei das genau genommen keine Folge, sondern deren Summenformel ist). Bzw.
... wenn ich keinen Denkfehler gemacht habe.
-
@Finnegan Super vielen Dank !
-
Was @manni66 dir sagen will, ist, daß der erste Aufruf überflüssig ist:
int main(){ int n; cout << "Geben Sie n ein: " << endl; cin >> n; cout << ffunk(n) << endl; }
-
Ich würde das ja anders lösen, da es sich wohl um eine Aufgabe aus der theoretischen Informatik handelt.
Die erste Schleife lässt sich nachübersetzen, die zweite Schleife
, das ergibt zusammen