Witam :) Mam problem z programem, który oparty jest na ciągu Fibonacciego. Tzn. nie wyświetla mi poprawnych wartości na wyjściu tak jak w podanym przykładzie
Zamiast tego wyświetla mi te same wartości które wczytałem. Dlatego nie wiem gdzie mam błąd. Z góry dziękuje za pomoc.
Zadanie do wglądu:
Agnieszka dowiedziała się ostatnio, skąd wziął się ciąg Fibonacciego. Mianowicie, uczony rozważał teoretyczny eksperyment dotyczący szybkości rozmnażania się stada królików przy następujących założeniach:
- na początku mamy jedną nowo narodzoną parę królików
- każda nowa para staje się płodna po miesiącu życia
- każda płodna para ma co miesiąc jedną parę potomstwa
- króliki są nieśmiertelne.
Wartość F(n) oznacza po prostu liczbę par królików po n miesiącach.
Agnieszka zastanawia się teraz, jakie byłoby rozwiązanie analogicznego zagadnienia w przypadku gdyby każda para królików stawała się płodna dopiero po dwóch miesiącach, ale za to miała co miesiąc dwie nowe pary potomstwa.
Przykład
Wejście:
4
0
1
3
4
Wyjście:
1
1
3
5
#include <iostream>
using namespace std;
unsigned int fib(unsigned int n) {
if (n == 0) {
return 1;
}
if (n == 1 || n == 2) {
return 1;
}
unsigned int a, b;
a = 0;
b = 1;
for (unsigned int i = 1; i < n; i++) {
swap(a, b);
b += a;
}
return b;
}
int main() {
int fib[5];
int n;
cin >> n;
int m;
for (int i = 0; i < n; i++) {
cin >> m;
fib[i] = m;
}
for (int i = 0; i < m; i++) {
cout << fib[i] << "\n";
}
return 0;
}
P.S Jestem poczatkującym programistą więc za każde błędy z góry przepraszam.
dodanie znaczników <code class="cpp">
- @furious programming