nhầm ngữ pháp thôi bạn
Tính số hạng thứ n của dãy Fibonacci bằng phương pháp đệ quy
E mới học lập trình và cũng k hiểu rõ về Fibinacci a có thể nói rõ ý tưởng làm bài này được k
có nhiều cách … c1 là bạn dùng đệ quy … đó là phổ thông nhất … bạn biết đệ quy chứ
ukm bạn thử gg xem hiểu ko đã …mình viết có khi ko bằng định nghĩa trong sách đâu
=)) mình thấy bạn này rất giỏi mà toàn hỏi ngược lại nhé :")
Welcome back @Is2IT, mấy hôm nay đi đâu thế
Hàm đệ quy là hàm tự gọi lại chính nó thôi. Trong lập trình có khái niệm đệ quy hơi khó hiểu, nhưng khi học một thời gian sẽ hiểu được. Nhiều người làm hoài mà cũng không hiểu đệ quy được.
Sẵn cho quảng cáo cái đệ quy luôn
Máy tính bị hỏng nên em ít sử dụng mạng anh ạ
Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 0 và 1 hoặc 1 và 1, các phần tử sau đó được thiết lập theo quy tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó.
Ví dụ mấy phần từ đầu của dãy Fibonacci là như sau
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
Em xem thêm ở Wiki nhé:
Ví dụ mấy phần từ đầu của dãy Fibonacci là như sau
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
0+1 = 1
1+1 = 2
2+1 = 3
3+2 = 5
5+3 = 8
8+5 = 13
=> 1 2 3 5 8 13 21 34 55 …
@ltd đạt cho e hỏi trong code này đoạn này hàm return có ý nghĩa j vậy a? return F(n-1)+F(n-2); và nó tự chạy như 1 vòng lặp luôn à anh?
Bạn xem giải thuật đệ qui nhé. Recursion wiki là ra.
@Honey_moon em xem cái video đệ quy này của anh.
Đồng thời xem mấy video về return của anh
@Is2IT haha, đang tính nói Ducky vụ nói “Recursion wiki là ra” mà lại không có link thì Ducky đã đưa link rồi, nhanh tay thế.
Bonus: Forum mình tránh trường hợp trả lời như vầy: “google đi, google tính phí à, …” Mặc dầu anh chưa thấy ai làm vậy nhưng thông báo trước để tránh gây hụt hẫng cho người đọc
Mấy đại ca nên để mấy con gà tự kiếm mà học! có vấn đề liên quan đến khái niệm nào thì mấy đại ca chỉ cần cho cái tên còn lại thì tự search k hiểu sẽ quấy rối tiếp! chứ đưa link thế mai mốt ỷ lại!
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)
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
cảm ơn .làm mãi ko đc bài này
#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);
}