Mong được giải đáp về bài tập tìm số hạng thứ n trong dãy Fibonacci bằng phương pháp đệ quy

Chào mọi người, em thì đang tìm hiểu về đệ quy và trong bài tập tìm số hạng thứ n trong dãy fibonaci em xem trên google thì có cách giải bằng đệ quy và em test thử thì kết quả vẫn ra đúng giống như khi em dùng vòng lặp :grinning:
VD : khi em nhập 5 nó sẽ ra kết quả bằng 8 giống như vòng lặp.
Nhưng mà em không hiểu về cách chương trình nó hoạt động như thế nào ? dùng vòng lặp thì em có thể hiểu chương trình hoạt động như thế nào, nhưng mà dùng đệ quy thì em không hiểu chương trình nó hoạt động như thế nào cả. Mong các cao nhân giải đáp giúp em :smiley: . Xin cảm ơn trước .

#include <stdio.h>
#include <stdlib.h>

int fibo(int n)
{
    if(n==0||n==1)
        return 0;
     else
        return fibo(n-1)+fibo(n-2);
}
int main()
{
    int n;
    printf("Nhap n\n");
    scanf("%d",&n);
    printf("So hang %d = %d",n,fibo(n));
    return 0;
}

Xét n = 5

fibo(5) = fibo(4) + fibo(3)
fibo(5) = [fibo(3) + fibo (2)] + [fibo(2) + fibo(1)]
fibo(5) = {[fibo(2) + fibo(1)] + [fibo(1) + fibo(0)]} + {[fibo(1) + fibo(0)] + fibo(1)}
fibo(5) = <{[fibo(1) + fibo(0)] + fibo(1)} + [fibo(1) + fibo(0)]> + {[fibo(1) + fibo(0)] + fibo(1)}
fibo(5) =      1     +    1     +    1     +    1     +     1     +     1     +    1     +    1
fibo(5) =                                                   8

cảm ơn anh :smiley: em hiểu rồi

Cái này gọi là đệ quy, recursion.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?