Code Fibonacci bằng vòng lặp

Ac cho e xin code bài này bằng vòng lặp với ạ. Chứ lên mạng nhiều chỗ khó hiểu nên cũng không biết hỏi ai ạ :<

Hi Vương T Thúy.
Bạn tìm code mà bạn thấy hiểu nhất. Copy lên đây (ghi rõ nguồn) và nói rõ bạn không hiểu chỗ nào.

3 Likes
#include<stdio.h>
int Fibonacci(int n){
    int a1 = 1, a2 = 1;
    if(n==1||n==2) return 1;
    int i=3,a;
    while(i<=n){
        a=a1+a2;
        a1=a2;
        a2=a;
        i++;
    } 
    return a;
}
int main(){
    int n;
    printf("nhap n: ");
    scanf("%d",&n);
    printf("So Fibonacci thu %d la: %d",n,Fibonacci(n));
    return 1;
}

mình không hiểu phần này nè

  a=a1+a2;
        a1=a2;
        a2=a;
        i++;

phần phép tính này đó. mình không hiểu cho lắm

Vậy là 3 câu này

a = a1 + a2;
a1 = a2;
a2 = a;

a1 lấy giá trị a2 vậy a1 ở sau a2 (và a2 phía sau a). Mỗi lần lặp phải đẩy xuống thì kết quả mới đúng.

a1 a2 a
1  1  2
1  2  3
2  3  5
.......
5 Likes

Dãy Fibonaci có 2 số đầu tiên xác định là 1 và 2, số thứ 3 trở đi bằng tổng 2 số liền trước. Khai báo a1 = 1, a2 = 2 thì a3 = a1 + a2, sau đó a4 = a2 + a3 (a2 bây giờ ~ a1, a3 ~ a2)

3 Likes

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

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