C语言教程-C语言中的斐波那契数列
斐波那契数列是指每个数字都是前两个数字的和,例如0、1、1、2、3、5、8、13、21等。斐波那契数列的前两个数字是0和1。
在C语言中有两种编写斐波那契数列程序的方法:
- 不使用递归的斐波那契数列
- 使用递归的斐波那契数列
不使用递归的斐波那契数列
以下是在C语言中编写不使用递归的斐波那契数列程序。
#include<stdio.h>
int main() {
int n1=0, n2=1, n3, i, number;
printf("请输入要输出的斐波那契数列项数:");
scanf("%d", &number);
printf("%d %d", n1, n2); //打印0和1
for(i=2; i<number; ++i) { //循环从2开始,因为0和1已经被打印
n3 = n1 + n2;
printf(" %d", n3);
n1 = n2;
n2 = n3;
}
return 0;
}
输出:
请输入要输出的斐波那契数列项数:15
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
使用递归的斐波那契数列
以下是在C语言中使用递归编写斐波那契数列程序。
#include<stdio.h>
void printFibonacci(int n) {
static int n1=0, n2=1, n3;
if(n>0) {
n3 = n1 + n2;
n1 = n2;
n2 = n3;
printf("%d ", n3);
printFibonacci(n-1);
}
}
int main() {
int n;
printf("请输入要输出的斐波那契数列项数: ");
scanf("%d", &n);
printf("斐波那契数列: ");
printf("%d %d ", 0, 1);
printFibonacci(n-2); //n-2因为前两个数字已经被打印
return 0;
}
输出:
请输入要输出的斐波那契数列项数: 15
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377