介绍
在本实验中,你将学习如何使用递归创建一个 C 程序来打印斐波那契数列。斐波那契数列定义为每个数字都是前两个数字之和的数列,其中 1, 1 是数列的前两个元素。
创建一个新的 C 文件
在 ~/project/ 目录下创建一个名为 main.c 的 C 文件。
包含必要的库
包含必要的标准输入输出库 stdio.h。
#include<stdio.h>
定义 printFibo 函数
定义一个名为 printFibo 的函数,参数为 aj。该函数用于打印斐波那契数列。
void printFibo(int aj)
{
static long int first = 0, second = 1, sum;
if(aj > 1)
{
sum = first + second;
first = second;
second = sum;
printf("%ld ", sum);
printFibo(aj-1); // 递归调用
}
else
{
// 在元素之后,换行
printf("\n\n\n");
}
}
定义 main 函数
定义 main 函数。从用户处获取斐波那契数列的总元素数,并将其传递给 printFibo 函数。
int main()
{
printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
int k, n;
long int i = 0, j = 1;
printf("Enter the length of the Fibonacci series: ");
scanf("%d", &n);
printf("\n\nFirst %d terms of the Fibonacci series are:\n\n\n",n);
printf("%d ", 1);
printFibo(n);
printf("\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}
完成代码
以下是使用递归打印斐波那契数列的完整程序:
#include<stdio.h>
// 声明函数
void printFibo(int);
int main()
{
printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
int k, n;
long int i = 0, j = 1;
printf("Enter the length of the Fibonacci series: ");
scanf("%d", &n);
printf("\n\nFirst %d terms of the Fibonacci series are:\n\n\n",n);
printf("%d ", 1);
printFibo(n);
printf("\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}
void printFibo(int aj)
{
static long int first = 0, second = 1, sum;
if(aj > 1)
{
sum = first + second;
first = second;
second = sum;
printf("%ld ", sum);
printFibo(aj-1); // 递归调用
}
else
{
// 在元素之后,换行
printf("\n\n\n");
}
}
总结
在本实验中,你学习了如何使用递归创建一个 C 程序来打印斐波那契数列。你现在已经掌握了定义函数以及利用递归遍历所需数列的过程。



