温馨提示×

C语言怎么解决Fibonacci数列问题

小亿
90
2023-10-30 11:36:22
栏目: 编程语言

在C语言中,可以使用循环或递归的方式来解决Fibonacci数列问题。

  1. 使用循环解决Fibonacci数列问题:
#include <stdio.h>

int fibonacci(int n)
{
    if (n <= 1) {
        return n;
    }

    int first = 0;
    int second = 1;
    int result = 0;

    for (int i = 2; i <= n; i++) {
        result = first + second;
        first = second;
        second = result;
    }

    return result;
}

int main()
{
    int n;
    printf("请输入一个正整数:");
    scanf("%d", &n);

    printf("第%d个Fibonacci数是:%d\n", n, fibonacci(n));

    return 0;
}
  1. 使用递归解决Fibonacci数列问题:
#include <stdio.h>

int fibonacci(int n)
{
    if (n <= 1) {
        return n;
    }

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

int main()
{
    int n;
    printf("请输入一个正整数:");
    scanf("%d", &n);

    printf("第%d个Fibonacci数是:%d\n", n, fibonacci(n));

    return 0;
}

以上两种方法都能够解决Fibonacci数列问题,但是使用递归的方式效率较低,特别是对于较大的n值,递归方式会有很多重复计算,因此使用循环方式是更好的选择。

0