Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Fibonacci Zahlen auflisten

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
10.05.2004, 16:58 Uhr
chrisuni



Da bin ich mal wieder ..
Kriege es einfach nicht hin mir die Fibonacci Zahlen aulisten zu lassen (Bsp. von 1-20) Habe zwar Quellcode wie man die X.te Fibonacci Zahl herausfindet, aber nicht wie ich die einfach auflisten kann..
Fibonacci zahlen: 1,1,2,3,5,8,13....
Mein super doofer Anfängerhafter code :

C++:
#include <iostream>
using namespace std;
int fib(int n);
int main()
{
int answer;
int n;
for (n=1;n<20;n++)
answer = fib(n);
return 0;
}

int fib (int n)
{if (n <=2)
{cout <<"\n1";
return 1;}
else
fib (n-2)+(n-1);
}





Thx 4 help.. irgend wie klappt der code nicht
--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.05.2004, 17:18 Uhr
chrisuni



Hab schon einen Fehler gefunden, aber die Ausgabe klappt immer noch nicht:

C++:
#include <iostream>
using namespace std;
int fib(int n);
int main()
{
int answer;
int n;
for (n=1;n<20;n++)
answer = fib(n);
return n;
}

int fib (int n)
{int a=1;
int b=0;
if (n <3)
{cout <<":"<<a;
return n;}
else
{b=(n-2)+(n-1);
cout << ":" << b;
return n;
}
}





Er zeigt mir an: 1 1 3 5 7 9 11 etc
--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.05.2004, 17:28 Uhr
chrisuni



mist ich weiß das das so nicht gehen kann wie ich es hingeschrieben habe, mir fällt aber keine Lösung ein.. theoretisch ist die 3. Zahl ja die Summe aus:
fib (1) + fib (2) = 1+1 =2 = fib(3), aber wie kriege ich das hin ?
--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.05.2004, 17:36 Uhr
(un)wissender
Niveauwart


mal so aus dem Bauch:


C++:
#include <iostream>

void fibonacci(int n)
{
    int fib = 1, last = 0, temp;
    while(fib < n)
    {
        std::cout << fib << std::endl;      
        temp = fib;
        fib += last;  
        last = temp;    
    }
    
}
int main(int argc, char *args[])
{
    fibonacci(45);
    
    return 0;



--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.05.2004, 17:37 Uhr
chrisuni



So sry zum letzten mal jetzt aber (bin die ganze Zeit am testen)

Normalerweise müsste das doch so jetzt gehen !? Aber klappt nicht:

C++:
#include <iostream>
using namespace std;
int fib(int n);
int main()
{
int answer;
int n;
for (n=1;n<20;n++)
answer = fib(n);
return n;
}

int fib (int n)
{int a=1;
int b=0;
if (n <3)
{cout <<":"<<a;
return n;}
else
{b= fib(n-2)+ fib(n-1);
cout << ":" << b;
return n;
}
}


--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.05.2004, 17:43 Uhr
chrisuni



@ (un) wissender... kannst Du mir zu Deinem Quelltext mal den Pseudocode nenne, bzw eine erklärung in worten was der da macht, ich kann den code nicht ganz nachvollziehen... steige da irgendwie nicht durch

aber danke schonmal
--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.05.2004, 17:43 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ohne das zu testen so ins forum gehackt

C++:
#include <iostream>
int fib(int n);
int main(){
    for (int i=1;i<20;++i)
        std::cout<<fib(i)<<"\t";
    std::cout<<std::endl;
}

int fib (int n){return n<3?1:fib(n-2)+ fib(n-1);}




Bearbeitung:

ok diesmal war ich zu langsgam...


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 10.05.2004 um 17:44 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.05.2004, 17:48 Uhr
(un)wissender
Niveauwart


Ich weiß nicht, der Code ist so einfach, was soll ich da erklären?
Solange die fib-Zahl kleiner ist als n (das ist die Grenze) wird die nächste ausgegeben. Da passiert, indem man die vorherige Zahl zu der davor addiert.
Zwei Zuweisungen, eine Addition...
Windalf hat dir außerdem die rekursive Lösung gepostet, bei der du die n-te Fibzahl bekommst.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.05.2004, 17:50 Uhr
chrisuni



Danke... von Windalf die Lösung kann ich nachvollziehen, werd mich mal daran hängen... aber von (un)wissender die Lösung kann ich folgende Zeilen nicht nachvollziehen, hab da irgendwie eine Blockade:

C++:
int fib = 1, last = 0, temp;
    while(fib < n)
    {
            
        temp = fib;
        fib += last;  
        last = temp;    
    }




Danke ihr habt mir wieder einmal sehr geholfen..
Bis später, mache jetzt erstmal Feierabend, genug C++ "gelernt" wieder für heute

Noch 4 Wochen bis zu meiner Nachschreibe Klausur ^^
--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
10.05.2004, 17:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Danke... von Windalf die Lösung kann ich nachvollziehen, werd mich mal daran hängen... aber von (un)wissender die Lösung kann ich folgende Zeilen nicht nachvollziehen...



hehe, na unwissender wer von uns beiden schreibt jetzt den übersichtlicheren code
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: