Я написал этот код C для вывода чисел Фибоначчи, но я потерялся относительно того, почему он дает неправильное значение, а также почему числа иногда идут вниз. Что происходит не так и как я могу это исправить?C - Неверные числа фибоначчи
Это дает мне эту последовательность: 0, 0, 1, 1, 2, 1, 3, 4, 3, 5, 5, 6, 8, 7, 13, 8, 21, 9, 34.
#include <stdio.h>
#include <math.h>
int MyFibonacciFunction(int n)
{
if (n == 0) {
return 0;
} else {
if (n == 1) {
return 1;
} else {
return (MyFibonacciFunction((n - 1)) + MyFibonacciFunction((n - 2)));
}
}
}
void main()
{
int a = 0;
while (a < 10) {
{
printf("%d\n", a);
printf("%d\n", MyFibonacciFunction(a));
a = (a + 1);
}
}
}
Ваша последовательность выглядит почти правильно, вы могли бы ожидать 0, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 5, 6, 8, 7, 13, 8, 21, 9, 34, потому что вы печатаете как a, так и fibo (a) ... – GHL
Множество лишних prentheses ... и фигурных скобок – Deduplicator
remove 'printf ("% d \ n ", a);'. – BLUEPIXY