papa8787
Nowicjusz
- Dołączył
- 21 Marzec 2007
- Posty
- 253
- Punkty reakcji
- 0
Mam maly problem z ciagiem Fibonacciego w C++
( To jest taki ciag 1 1 2 3 5 8 13 21 ... - kolejna liczba to jest suma dwoch poprzednich liczb )
Dlaczego na poczatku program dziala bardzo szybko a nagle zaczyna sie zamulac i dziala baaaaaaaaaaardzo wolno?
Oto moj kod:
#include<iostream>
using namespace std;
int fib(int n){
// funkcja fib
if(n==1 || n==2) return 1;
// rekurencja - najprostszy warunek
return fib(n-1)+fib(n-2);
// oddaj wynik suma dwoch kolejnych liczb
};
void main(){
for(int i=1; i<70; i++)
// prosta petla do 70
cout<<" fib("<<i<<") = "<<fib(i)<<endl;
// wyswietlanie wynikow ktore
// dostajemy z funkcji fib
}
Macie pomysl dlaczego to tak sie wlecze ?? A moze macie pomysl na szybszy kod ktory uzywa rekurencji ?? dziekuje za wszelka pomoc
( To jest taki ciag 1 1 2 3 5 8 13 21 ... - kolejna liczba to jest suma dwoch poprzednich liczb )
Dlaczego na poczatku program dziala bardzo szybko a nagle zaczyna sie zamulac i dziala baaaaaaaaaaardzo wolno?
Oto moj kod:
#include<iostream>
using namespace std;
int fib(int n){
// funkcja fib
if(n==1 || n==2) return 1;
// rekurencja - najprostszy warunek
return fib(n-1)+fib(n-2);
// oddaj wynik suma dwoch kolejnych liczb
};
void main(){
for(int i=1; i<70; i++)
// prosta petla do 70
cout<<" fib("<<i<<") = "<<fib(i)<<endl;
// wyswietlanie wynikow ktore
// dostajemy z funkcji fib
}
Macie pomysl dlaczego to tak sie wlecze ?? A moze macie pomysl na szybszy kod ktory uzywa rekurencji ?? dziekuje za wszelka pomoc