SIMPLE
STRING
ARRAY
SORTING
POINTER
CALCULATION
NUMBER
OTHER
C
BÀI TẬP C
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thứ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."

Screenshot 202024 03 19 20155700 png

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.

Cùng chuyên mục:

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top