Kiểm tra mảng có phải là một dãy số Fibonacci hay không trong C
Dãy Fibonacci là một dãy số trong đó mỗi số là tổng của hai số trước đó trong dãy. Trong lập trình, đôi khi mình cần kiểm tra xem một mảng các số có phải là một dãy Fibonacci hay không. Trong bài viết này, mình sẽ tìm hiểu cách kiểm tra điều này bằng cách sử dụng ngôn ngữ lập trình C.
Bài tập Kiểm tra mảng có phải là một dãy số Fibonacci hay không trong C
Cách giải quyết:
Để kiểm tra xem một mảng các số có phải là một dãy Fibonacci hay không, mình sẽ kiểm tra từng phần tử của mảng xem chúng có tuân theo quy tắc Fibonacci không. Cụ thể, mỗi phần tử trong mảng, trừ hai phần tử đầu tiên, phải bằng tổng của hai phần tử trước đó.
Dưới đây là một ví dụ về cách cài đặt kiểm tra mảng có phải là một dãy số Fibonacci hay không trong ngôn ngữ lập trình C:
Bài viết này được đăng tại [free tuts .net]
#include <stdio.h> int isFibonacci(int arr[], int n) { if (n <= 2) return 1; // Nếu mảng có 2 phần tử trở xuống, nó sẽ luôn là dãy Fibonacci for (int i = 2; i < n; i++) { if (arr[i] != arr[i-1] + arr[i-2]) return 0; // Nếu một phần tử không phải tổng của hai phần tử trước đó, mảng không phải là dãy Fibonacci } return 1; // Nếu mảng thỏa mãn điều kiện của dãy Fibonacci } int main() { int n; printf("Nhập số phần tử của mảng: "); scanf("%d", &n); int arr[n]; printf("Nhập các phần tử của mảng:\n"); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } if (isFibonacci(arr, n)) printf("Mảng đã nhập là một dãy Fibonacci.\n"); else printf("Mảng đã nhập không phải là một dãy Fibonacci.\n"); return 0; }
Giải thích code:
- Trong hàm
isFibonacci()
, mình kiểm tra từng phần tử của mảng để xem nó có tuân theo quy tắc Fibonacci hay không. - Nếu một phần tử không phải tổng của hai phần tử trước đó, mình trả về 0, ngược lại trả về 1.
- Trong hàm
main()
, mình nhập số phần tử của mảng và các phần tử của mảng từ người dùng. - Sau đó, mình gọi hàm
isFibonacci()
để kiểm tra xem mảng đã nhập có phải là dãy Fibonacci hay không và in ra kết quả tương ứng.
Kết quả
Giả sử bạn nhập các phần tử của mảng là 1 1 2 3 5, chương trình sẽ xuất ra rằng "Mảng đã nhập là một dãy Fibonacci."
Trong bài viết này, mình đã tìm hiểu cách kiểm tra xem một mảng các số có phải là một dãy Fibonacci hay không trong ngôn ngữ lập trình C. Điều này là một trong những kỹ thuật quan trọng khi xử lý mảng và kiểm tra điều kiện trong lập trình.