Program działa poprawnie gdy cout<< znajduje się w pętli ale ja chciałbym aby nie wyświetlał każdej wartości tylko ostatnią. Czyli wydaje mi sie ze gdyby umieścić cout<< poza pętlą program powinien prawidłowo wyświetlać wartość, tak się jednak nie dzieje. Czy ktoś wie w czym tkwi problem?
http://pastebin.com/Qmv02fZL
0
1
cout<<"n ty wyraz ciagu fib wynosi "<<tab[n - 1]<<endl;
No i jeszcze tworzysz zmienną lokalną i, a w pętli deklarujesz nową zmienną i, która jest widoczna tylko w tej pętli i przykrywasz zewnętrzną dla tej pętli zmienną i z funkcji main.
I w każdej iteracji pętli pierwszy i drugi element tablicy ustawiasz na wartość 1, co negatywnie wpływa na efektywność kodu.
6
Problem tkwi w tym, że odnosisz się do i
, które istnieje tylko w pętli. Wyświetl tab
dla n-1
.
Tak poza tym, nie potrzebujesz tutaj tablicy w ogóle, a nawet jeśli - to nie tak dużą. Fib(47) nie mieści się w 32-bitowym incie ze znakiem.
0
Dzięki za wyjaśnienie problemu i za cenne rady :)