30/09/2018, 16:00

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

Mình nghĩ là bài của mình sai về thuật toán. Mình đã thử debug mà không biết lỗi thế nào. Đây là từng bước debug và code của mình.
Debug


Code :

# include<stdio.h>
# include<conio.h>
int F(int n)
{
	if(n=1)
	return 1;
	if (n=2)
	return 1;
	if (n>=3)
	return F(n-1)+F(n-2);
}
int main()
{
	int n;
	printf("Nhap vao so nguyen can tinh:");
	scanf("%d",&n);
	getch();
	printf("%d  = %d",n,F(n));
}
Đỗ Trung Quân viết 18:04 ngày 30/09/2018

Mình sửa code của bạn rồi bạn thử nhé. Máy vừa cài win xong nên k kiểm tra được.

int F(int n)
{
    if(n==0) return 0;
    else 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(i=1;i<=n;i++)
        printf("%d  ",F(i));
    getch();
}
Nguyễn Ngọc Tú viết 18:02 ngày 30/09/2018

Dấu ‘=’ dùng cho phép gán. Nếu bạn muốn so sánh bằng thì cần dùng hai dấu ‘=’.

Fate viết 18:12 ngày 30/09/2018

Ok mình cảm ơn nhé. Gắn n=1 nên F(n) cứ ra = 1 mãi.

Nguyễn Minh Dũng viết 18:00 ngày 30/09/2018

Các bạn cho mình quảng cáo tí nha

#include <stdio.h> #include <stdlib.h> int main() { int x = 0; if (x = 1) printf("x = %d\n", x); else (x = 1) printf(" x = %d\n", x); /* else{ printf("kem\n"); }*/ } Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây : Thông tin về khóa học xem tại đây : -Sự khác biệt giữa 2 khóa học cũ và mới : +Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả. +Trong …
Trần Trí Dũng viết 18:07 ngày 30/09/2018

nhầm ngữ pháp thôi bạn

Minh Anh viết 18:01 ngày 30/09/2018

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

Trần Trí Dũng viết 18:02 ngày 30/09/2018

có nhiều cách … c1 là bạn dùng đệ quy … đó là phổ thông nhất … bạn biết đệ quy chứ

buithaiminh viết 18:08 ngày 30/09/2018

Đệ quy là gì @BatdangthucD giải thích cho mình và các bạn không biết hiểu với. Thanks.

Trần Trí Dũng viết 18:03 ngày 30/09/2018

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

Đỗ Trung Quân viết 18:05 ngày 30/09/2018

Đệ quy là gì @BatdangthucD giải thích cho mình và các bạn không biết hiểu với. Thanks.

=)) mình thấy bạn này rất giỏi mà toàn hỏi ngược lại nhé :")

Nguyễn Minh Dũng viết 18:04 ngày 30/09/2018

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

Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây : Thông tin về khóa học xem tại đây : -Sự khác biệt giữa 2 khóa học cũ và mới : +Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả. +Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại..... Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học …
Đỗ Trung Quân viết 18:12 ngày 30/09/2018

mấy hôm nay đi đâu thế

Máy tính bị hỏng nên em ít sử dụng mạng anh ạ

Nguyễn Minh Dũng viết 18:02 ngày 30/09/2018

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é:

Wikiwand

Dãy Fibonacci | Wikiwand

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ó. Công thức truy hồi của dãy Fibonacci là:

Phát viết 18:09 ngày 30/09/2018

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 …

Thực tế khắc nghiệt viết 18:00 ngày 30/09/2018

@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?

Đỗ Trung Quân viết 18:07 ngày 30/09/2018

đạ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.

vi.wikipedia.org

Đệ quy

Đệ quy (tiếng Anh: recursion) là phương pháp dùng trong các chương trình máy tính trong đó có một hàm tự gọi chính nó. Trong toán học và khoa học máy tính, các tính chất (hoặc cấu trúc) được gọi là đệ quy nếu trong đó một lớp các đối tượng hoặc phương pháp được xác định bằng việc xác định một số rất ít các trường hợp hoặc phương pháp đơn giản (thông thường chỉ một) và sau đó xác định quy tắc đưa các trường hợp phức tạp về các trường hợp đơn giản. Chẳng hạn, định nghĩa sau là định nghĩa đệ quy c...

Nguyễn Minh Dũng viết 18:06 ngày 30/09/2018

@Honey_moon em xem cái video đệ quy này của anh.

Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây : Thông tin về khóa học xem tại đây : -Sự khác biệt giữa 2 khóa học cũ và mới : +Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả. +Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại..... Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học …

Đồ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ế.

Bạn xem giải thuật đệ qui nhé. Recursion wiki là ra.

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

[image]
Thực tế khắc nghiệt viết 18:03 ngày 30/09/2018

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!

Bài liên quan
0