用 C 语言生成斐波那契数列

CBeginner
立即练习

简介

在本实验中,我们将学习如何用 C 语言生成斐波那契数列。斐波那契数列是一个著名的数学数列,其中每个数字都是前两个数字之和。我们将首先从用户那里读取项数,然后使用循环生成数列,最后打印生成的斐波那契数列。本实验使用 C 编程语言涵盖了数论和离散数学中的基本概念。

读取项数

在这一步中,我们将学习如何在 C 语言中读取生成斐波那契数列的项数。这是创建我们的斐波那契数列程序的关键第一步。

首先,让我们在 ~/project 目录中创建一个新的 C 文件:

cd ~/project
nano fibonacci.c

现在,让我们编写初始代码来从用户那里读取项数:

#include <stdio.h>

int main() {
    int n;

    printf("Enter the number of terms in Fibonacci sequence: ");
    scanf("%d", &n);

    printf("你输入了 %d 项。\n", n);

    return 0;
}

让我们编译并运行该程序来测试我们的输入:

gcc fibonacci.c -o fibonacci
./fibonacci

示例输出:

Enter the number of terms in Fibonacci sequence: 10
你输入了 10 项。
解释
  • scanf("%d", &n) 从用户那里读取一个整数输入并将其存储在变量 n
  • 我们使用 printf() 提示用户并显示输入的项数
  • 该程序验证我们是否可以成功捕获用户输入的数列长度

使用循环生成项

在这一步中,我们将修改之前的斐波那契数列程序,使用循环来生成数列。我们将基于上一步的代码来创建实际的斐波那契数列。

让我们更新 fibonacci.c 文件:

cd ~/project
nano fibonacci.c

现在,让我们修改代码,使用 for 循环来生成斐波那契项:

#include <stdio.h>

int main() {
    int n, first = 0, second = 1, next;

    printf("输入斐波那契数列的项数:");
    scanf("%d", &n);

    printf("%d 项的斐波那契数列:\n", n);

    for (int i = 0; i < n; i++) {
        if (i <= 1)
            next = i;
        else {
            next = first + second;
            first = second;
            second = next;
        }
        printf("%d ", next);
    }
    printf("\n");

    return 0;
}

编译并运行程序:

gcc fibonacci.c -o fibonacci
./fibonacci

示例输出:

输入斐波那契数列的项数:10
10 项的斐波那契数列:
0 1 1 2 3 5 8 13 21 34
解释
  • 我们将 firstsecond 初始化为斐波那契数列的前两项
  • for 循环通过将前两项相加来生成后续项
  • next = first + second 计算下一项
  • 我们在每次迭代中更新 firstsecond 以保持数列的推进
  • 循环继续,直到我们生成指定数量的项

打印数列

在这最后一步中,我们将通过添加格式化选项和改进输出展示来增强我们的斐波那契数列程序。

让我们更新 fibonacci.c 文件以改进数列打印:

cd ~/project
nano fibonacci.c

修改代码以添加更多格式化和打印选项:

#include <stdio.h>

int main() {
    int n, first = 0, second = 1, next;

    printf("输入斐波那契数列的项数:");
    scanf("%d", &n);

    printf("%d 项的斐波那契数列:\n", n);

    printf("索引\t值\n");
    printf("-----\t-----\n");

    for (int i = 0; i < n; i++) {
        if (i <= 1)
            next = i;
        else {
            next = first + second;
            first = second;
            second = next;
        }
        printf("%d\t%d\n", i, next);
    }

    return 0;
}

编译并运行程序:

gcc fibonacci.c -o fibonacci
./fibonacci

示例输出:

输入斐波那契数列的项数:8
8 项的斐波那契数列:
索引   值
-----   -----
0       0
1       1
2       1
3       2
4       3
5       5
6       8
7       13
解释
  • 我们添加了一个带有索引和值列的格式化表格
  • \t 用于创建以制表符分隔的列,以形成整洁的表格布局
  • 现在每个项都与其对应的索引一起打印
  • 输出提供了斐波那契数列清晰、结构化的视图

总结

在本实验中,我们学习了如何从用户那里读取项数,以便在 C 语言中生成斐波那契数列。我们首先提示用户输入所需的项数,然后使用循环来计算并打印斐波那契数列。关键步骤包括初始化前两个斐波那契数,然后在循环的每次迭代中更新它们,以生成数列中的下一个数。

最后,我们根据用户的输入打印出完整的斐波那契数列。本实验提供了一个在编程语言中使用循环和变量来生成经典数学数列的实际示例。