Tính số hạng thứ n của dãy Fibonacci bằng phương pháp đệ quy

Có cao nhân nào có cách tìm số fibonaci lớn mà thời gian chạy nhanh không?(VD số Fibo thứ 100 chẳng hạn)

1 Like

Dùng nhân ma trận.

https://tritran.xyz/posts/tim-so-fibonacci-bat-ki/#2-tim-so-fibonacci-bat-ki-bang-ma-tran

4 Likes

cảm ơn .làm mãi ko đc bài này :slight_smile:

2 Likes
#include<stdio.h>
int F(int n)
{
    if(n==0)
	{
		return 0;
	} 
    if(n==1)
	{
    	return 1;	
    } 
    return F(n-1)+F(n-2);
}
int main()
{
    int n;
    printf("Nhap vao so nguyen can tinh:");
    scanf("%d",&n);
    for(n=1;n<=n;n++)
        printf("%d  ",F(n));
    return 0;
}

đã edit nhé !

Mình sửa lại code hoàn chỉnh cho bạn nhé :

#include <stdio.h>
#include <conio.h>
int Fibonaci(int n);
int main(int argc, char *argv[])
{
	int n;
	do{
    	printf(" Nhap vao n : ");
    	scanf("%d", &n);
    }while(n<0);
	printf("\n Fibonaci(%d) = %d ", n, Fibonaci(n));
	return 0;
	getch();
}
int Fibonaci(int n)
{
	if(n==0)
	 return 0;
    else if(n==1 || n==2)
     return 1;
    else
     return Fibonaci(n-1) + Fibonaci(n-2);
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?