Не получается контролировать глубину итерации

Задача следующая:

Последовательность из задачи является последовательностью чисел фибоначчи, т.е k - сумма двух предыдущих членов.

Таблица должна выглядеть примерно так:

В выводе вы увидете, как я попытался сделать такой вывод, пока без форматирования.

Главная проблема заключается в том, что программа неправильно определяет глубины рекурсии(левый столбец). Сравните как примерно должна выглядеть таблица с выводом.

Код:


int i = 0;

long fibo(int n, int m) {

    if (n == 1 || n == 2) {
        return 1;
    } else {
        return fibo(n - 1, m + 1) + fibo(n - 2, m + 1);
    }

}

long table(long n, int m) {
    if (i == 0) {
        printf("--------------------------------------------------------------------------------------------------\n");
        printf("|   Level   |         Recursion descent         |                Recursion return                |\n");
        printf("--------------------------------------------------------------------------------------------------\n");
        printf("|    %d     |     Input: n = %2ld   fibo(%2ld )     |                    Result:%2ld                  |\n", i, n, n, fibo(n, m));
        return 0;
    }
    else if (n == 1 || n == 2){
        printf("|    %d     |            const = 1        |            return 1       (fibo = 1)                 |\n", i, n);
        return 0;
    }
    else if (i == m){
        printf("|    %d     |     n = %d    fibo(%ld) and fibo(%ld)       |     return %ld+%ld  (fibo = %ld)                 |\n", i, n, n - 1, n - 2, fibo(n - 1, m + 1), fibo(n - 2, m + 1), fibo(n - 2, m + 1), fibo(n, m + 1));
    }
    table(n - 1, m + 1);
    table(n - 2, m + 1);
    return 0;
}

int main() {

    long n; scanf("%ld", &n);
    if (n > 47) {
        printf("!\n");
        return 0;
    }

    for ( ; i < n; i++){
        table(n, 1);
        printf("--------------------------------------------------------------------------------------------------\n");
    }

    printf("%ld", fibo(n, 1));
    
}

Ответы (0 шт):