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 ]
010
10.05.2004, 17:52 Uhr
(un)wissender
Niveauwart


Dein Code mal aufgeräumt:


C++:
#include <iostream>

int fib(int n);

int main()
{  
    for (int n=1;n<20;n++)
    {
        std::cout << fib(n) << std::endl;
    }
    return 0;
}

int fib(int n)
{
    if(n < 3)
        return 1;
    else
        return fib(n-2) + fib(n-1);
}


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
10.05.2004, 17:54 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


man sollte vielleicht dazu sagen das die beiden lösungen von mir und unwissender bezüglich performance nicht gerade optimal sind, weil die fibonaci zahlen immer wieder von neuem ausgerechnet werden... insofern hatte dein ansatz das innerhalb der funktion auszugeben auch gewisse vorteile
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
10.05.2004, 17:55 Uhr
(un)wissender
Niveauwart


@Windalf
Meiner ist aber viel schneller und verbraucht weniger speicher!
Wollte halt auch mal was sagen.
Mal ganz ehrlich, findest du die drei Anweisungen auch unklar?
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
10.05.2004, 17:55 Uhr
(un)wissender
Niveauwart


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



*g* nur das ich an so einer Aufgabe jetzt 3 Std verbracht habe und sie im endeffekt nicht funktioniert hat... wie gesagt ich hab noch richtig viel zu lernen, damit ich meine Nachschreibeklausur schaffe und ich merke das Lernen,klappt nur durch Übung...
nur doof ist das ich mit:


C++:
#include <iostream>
using namespace std;




arbeite und somit nicht diese std::cout brauche, was mich anfangs irritiert hatte... ist das :: eigentlich in diesem Fall ein scope operator oder ein Konstruktor ^^ diese Thema muss ich auch noch komplett durcharbeiten (Überladen von Funktionen, Operatoren etc) für sinvolle Übungsaufgaben bin ich übrigens immer dankbar :P
--
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
015
10.05.2004, 18:03 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Mal ganz ehrlich, findest du die drei Anweisungen auch unklar?


nein, ich fands aber äusserst aufbauend das einer diesmal meine Lösung vorgezogen hat und prompt kommst du mit den argumenten die ich sonst immer bringe
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
10.05.2004, 18:03 Uhr
Pablo
Supertux
(Operator)


Da muss ich windalf recht geben, eine iterierte Fibo-Funktion ist in diesem Fall besser. Berechner rekursiv fibo(40). Viel Spaß!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
10.05.2004, 18:09 Uhr
(un)wissender
Niveauwart



C++:
#include <iostream>
  
template<int n>
class fib
{
public:
    static const int value = fib<n-2>::value + fib<n-1>::value;
};

template <>
class fib<0>
{
public:
    static const int value = 0;
};

template <>
class fib<1>
{
public:
    static const int value = 1;
};

int main()
{  
    std::cout << fib<1>::value << std::endl;
    std::cout << fib<2>::value << std::endl;
    std::cout << fib<3>::value << std::endl;
    std::cout << fib<4>::value << std::endl;
    std::cout << fib<5>::value << std::endl;
    std::cout << fib<30>::value << std::endl;
}


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
10.05.2004, 18:11 Uhr
(un)wissender
Niveauwart


Hä, Pablo?
Die "iterierte" (iterative) Lösung kommt von mir, nicht von Windalf, obwohl ich glaube, mit ein bisschen Zeit hätte er das auch hinbekommen...
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
10.05.2004, 18:18 Uhr
Pablo
Supertux
(Operator)


ich hab von Anfang an nur ab Post 010 (Zweite Seite) gelesen, deshalb dachte ich, dass es von dir kam, sorry.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
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: