Посмотрите на ваш цикл:
for(int i = 0; i <= number; ++i)
cout << fib(number) << endl;
Обратите внимание, что тело цикла не использует i
... оно всегда вызывает fib(number)
.Если изменить это значение на fib(i)
, то это будет исправлено.
(Это не очень эффективно, поскольку каждый раз вы будете пересчитывать значения, но это отдельный вопрос. Хотя вы могли бы поставитьпечать в fib
, в которой смешаны вопросы «что делать с результатами» и «вычисления последовательности Фибоначчи».)