Như các bạn đều biết thì số Fibonaci là một số có tính truy hồi ngặt, nghĩa là phải biết F(0) thì mới tính được F(n). Mình có viết một hàm Kiểm tra xem một số n có phải là số Fibonacci ko như sau:
Trước hết viết một hàm tính số Fibonaci thứ i fibo(i), (cái này dùng đệ quy) ai cũng biết.
Sau đó viết hàm kiemtra
Code:
kq=1;
do
{
i++;
}while (fibo(i)<n)
if (fibo(i)==n)
return 1;
else
return 0;
Như vậy nếu fibo(i) = n thì n sẽ là số fibo thứ i.
Có bạn nào còn thuật toán khác chạy nhanhn hơn ko, vì mình thấy càng trở về phía bên phải của trục số thì các số fibo sẽ phân bố càng thưa, như vậy nếu dùng cách trên sẽ chạy hơi lâu.