首页 > 编程笔记

使用C语言输出斐波那契数列

斐波那契数列是指 1、1、2、3、5、8、13、21、34、55、89、144、233、377…… 的一组数字,它的前两个数都是 1,从第三个数开始,每个数都是它前面两个数的和。斐波那契数列在自然界和生活中广泛存在,如植物的叶子排列、贝壳的螺旋线等,它具有很好的数学性质和美学价值,因此在计算机科学中也得到了广泛的应用。

想要通过 C语言输出斐波那契数列可以使用循环结构或递归结构,下面分别介绍一下这两种实现方法。

使用循环结构实现斐波那契数列

使用循环结构实现斐波那契数列需要使用两个变量来存储前两个数,然后利用一个循环结构来计算后续的数。具体实现如下:
#include <stdio.h>

int main() {
    int n, i, a = 1, b = 1, c;
    printf("Enter the number of terms: ");
    scanf("%d", &n);
    printf("Fibonacci series:\n");
    printf("%d %d ", a, b);
    for (i = 3; i <= n; i++) {
        c = a + b;
        printf("%d ", c);
        a = b;
        b = c;
    }
    printf("\n");
    return 0;
}
在这个程序中,我们先读入要输出的斐波那契数列的项数,然后使用两个变量 a 和 b 来存储前两个数,使用循环结构来计算后续的数。在循环中,我们先计算当前数 c,然后输出它,并将 a 和 b 分别更新为上一个数和当前数,以便计算下一个数。最后输出一个换行符。

运行这个程序,输入要输出的斐波那契数列的项数,即可得到相应的结果。例如,输入 10,输出如下:

Enter the number of terms: 10
Fibonacci series:
1 1 2 3 5 8 13 21 34 55

使用递归结构实现斐波那契数列

使用递归结构实现斐波那契数列需要定义一个递归函数,该函数接收一个整数作为参数,返回对应的斐波那契数。具体实现如下:
#include <stdio.h>

int fibonacci(int n);

int main() {
    int n, i;
    printf("Enter the number of terms: ");
    scanf("%d", &n);
    printf("Fibonacci series:\n");
    for (i = 1; i <= n; i++) {
        printf("%d ", fibonacci(i));
    }
    printf("\n");
    return 0;
}

int fibonacci(int n) {
    if (n == 1 || n == 2) {
        return 1;
    }
    return fibonacci(n - 1) + fibonacci(n - 2);
}
在这个程序中,我们定义了一个递归函数 fibonacci,它接收一个整数 n 作为参数,返回对应的斐波那契数。在函数中,如果 n 的值为 1 或 2,直接返回 1,否则返回前两个数的斐波那契数之和。

在 main 函数中,我们读入要输出的斐波那契数列的项数,然后使用一个循环结构来依次输出每个数的斐波那契数。在循环中,我们调用 fibonacci 函数来计算每个数的斐波那契数,并输出它。最后输出一个换行符。

运行这个程序,输入要输出的斐波那契数列的项数,即可得到相应的结果。例如,输入 10,输出如下:

Enter the number of terms: 10 Fibonacci series: 1 1 2 3 5 8 13 21 34 55

这就是使用 C语言输出斐波那契数列的两种方法,分别是使用循环结构和递归结构实现。我们可以根据实际需要选择其中的一种方法。

推荐阅读