Dãy số Fibonacci là một dãy số rất phổ biến trong toán học và lập trình. Dãy này bắt đầu bằng hai số 0 và 1, sau đó các số tiếp theo trong dãy được tính bằng cách cộng hai số trước đó lại với nhau. Ví dụ: 0, 1, 1, 2, 3, 5, 8, 13, 21, …
Trong ngôn ngữ lập trình C++, bạn có thể viết mã để tạo ra các số Fibonacci bằng cách sử dụng vòng lặp hoặc đệ quy.
1. Sử dụng vòng lặp:
Chúng ta đã thấy cách sử dụng vòng lặp để tính các số Fibonacci theo cách lặp lại phép cộng hai số trước đó. Điều này thường hiệu quả hơn về mặt thời gian và bộ nhớ so với đệ quy.
#include <iostream>
int main() {
int n;
std::cout << “Nhap so phan tu cua day Fibonacci: “;
std::cin >> n;
int first = 0;
int second = 1;
std::cout << “Day Fibonacci: “;
for (int i = 0; i < n; i++) {
std::cout << first << ” “;
int next = first + second;
first = second;
second = next;
}
std::cout << std::endl;
return 0;
}
vd1: nếu người dùng nhập 5
Input:
output:
vd2: nếu người dùng nhập 10
input:
output:
Trong đoạn mã trên, chúng ta nhập số phần tử n
của dãy Fibonacci từ người dùng. Sau đó, chúng ta khởi tạo hai biến first
và second
để lưu giá trị hai số Fibonacci đầu tiên. Tiếp theo, chúng ta sử dụng một vòng lặp để tính và in ra các số Fibonacci theo số phần tử được yêu cầu. Mỗi lần lặp, chúng ta tính giá trị tiếp theo bằng cách cộng first
và second
, sau đó cập nhật first
và second
để tiếp tục tính toán.
2. Sử dụng đệ quy:
Đệ quy là một cách khác để tính dãy Fibonacci, trong đó chúng ta định nghĩa hàm tính số Fibonacci bằng cách gọi lại chính hàm đó với các tham số nhỏ hơn cho đến khi đạt đến trường hợp cơ sở.
#include <iostream>
int fibonacci(int n) {
if (n <= 1)
return n;
else
return fibonacci(n – 1) + fibonacci(n – 2);
}
int main() {
int n;
std::cout << “Nhap so phan tu cua day Fibonacci: “;
std::cin >> n;
std::cout << “Day Fibonacci: “;
for (int i = 0; i < n; i++) {
std::cout << fibonacci(i) << ” “;
}
std::cout << std::endl;
return 0;
}
ví dụ: nếu người dùng nhập 6
input:
output:
Trong đoạn mã trên, chúng ta định nghĩa một hàm đệ quy fibonacci
để tính giá trị Fibonacci của một số n
. Nếu n
nhỏ hơn hoặc bằng 1, chúng ta trả về chính n
. Ngược lại, chúng ta gọi đệ quy để tính giá trị Fibonacci của n - 1
và n - 2
, sau đó cộng lại và trả về.
Trong hàm main()
, chúng ta nhập số phần tử n
của dãy Fibonacci từ người dùng. Sau đó, chúng ta sử dụng một vòng lặp để gọi hàm fibonacci()
với các giá trị từ 0 đến n - 1
và in ra các số Fibonacci tương ứng.
Dùng cách nào còn tùy thuộc vào yêu cầu và quy mô của vấn đề. Dãy số Fibonacci trong C++ là một ví dụ phổ biến về cách sử dụng vòng lặp và đệ quy để tạo ra dãy số.
Dựa vào tình huống cụ thể, chúng ta có thể chọn phương pháp nào là thích hợp. Vòng lặp thường hiệu quả hơn về mặt tài nguyên và thời gian trong nhiều trường hợp, nhưng đệ quy có thể dễ đọc và hiểu hơn trong một số trường hợp đơn giản
Read Ngôn ngữ lập trình C++ là gì? Ứng dụng của lập trình C++
3. Kết luận
Tóm lại, thông qua việc tìm hiểu và thực hiện dãy số Fibonacci trong C++, chúng ta đã có cơ hội làm quen với việc sử dụng vòng lặp, đệ quy và cách thức kiểm tra dữ liệu đầu vào trong ngôn ngữ lập trình C++. Điều này sẽ cung cấp nền tảng vững chắc cho việc nắm bắt các khái niệm cơ bản trong lập trình và xử lý dữ liệu số liệu. Mong rằng với những chia sẻ của Hướng dẫn học C++ có thể giúp bạn hiểu rõ hơn về Dãy số Fibonacci trong C++.