Tính giá trị của số fibonacci thứ n trong C#

Sinh vien hoc lap trinh

Để tính giá trị của số Fibonacci thứ n trong C#, bạn có thể sử dụng vòng lặp hoặc đệ quy.

Cách 1: Sử dụng vòng lặp Bạn có thể sử dụng vòng lặp để tính giá trị của số Fibonacci thứ n bằng cách tính tổng của hai số Fibonacci trước đó. Dưới đây là một ví dụ code:

public static int Fibonacci(int n)
{
    if (n <= 1)
    {
        return n;
    }

    int fib = 1;
    int prevFib = 1;

    for (int i = 2; i < n; i++)
    {
        int temp = fib;
        fib += prevFib;
        prevFib = temp;
    }

    return fib;
}

Cách 2: Sử dụng đệ quy Bạn cũng có thể sử dụng đệ quy để tính giá trị của số Fibonacci thứ n. Dưới đây là một ví dụ code:

public static int Fibonacci(int n)
{
    if (n <= 1)
    {
        return n;
    }

    return Fibonacci(n - 1) + Fibonacci(n - 2);
}

Dưới đây là một số lưu ý và cách tối ưu để tính giá trị của số Fibonacci thứ n trong C#:

  1. Để tránh việc tính toán lặp lại các số Fibonacci, bạn có thể sử dụng một mảng để lưu trữ các số đã tính toán. Với mỗi lần tính toán, bạn chỉ cần truy xuất giá trị đã lưu trong mảng, nếu giá trị đã có, và tính toán và lưu trữ giá trị mới vào mảng nếu chưa có. Điều này giúp tăng tốc độ tính toán khi n lớn.
  2. Nếu bạn sử dụng phương pháp đệ quy để tính toán số Fibonacci thứ n, hãy chắc chắn rằng bạn giới hạn độ sâu của đệ quy để tránh tràn bộ nhớ stack.

Ví dụ, đây là một cách sử dụng mảng để lưu trữ các số Fibonacci đã tính toán:

public static int Fibonacci(int n)
{
    int[] fibArray = new int[n + 1];

    fibArray[0] = 0;
    fibArray[1] = 1;

    for (int i = 2; i <= n; i++)
    {
        fibArray[i] = fibArray[i - 1] + fibArray[i - 2];
    }

    return fibArray[n];
}

Trong ví dụ này, một mảng có kích thước n + 1 được tạo ra để lưu trữ các giá trị của số Fibonacci. Trong quá trình tính toán, mảng được điền với các giá trị Fibonacci bằng cách tính tổng của hai số Fibonacci trước đó.

Sau khi mảng được tạo ra, phần tử cuối cùng của mảng sẽ chứa giá trị của số Fibonacci thứ n, do đó phương thức sẽ trả về giá trị này.

Hy vọng rằng thông tin này sẽ giúp bạn tính toán số Fibonacci thứ n trong C# một cách hiệu quả.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *