斐波那契数列(Fibonacci sequence), 又称黄金分割数列、因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入, 故又称为“兔子数列”, 指的是这样一个数列: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55……
这个数列从第3项开始, 每一项都等于前两项之和
我们用代码实现一下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//递归
int Recursive(int n)
{
if (n <= 2)
return 1;
else
return Recursive(n - 1) + Recursive(n - 2);
}
//非递归
int nonRecursive(int n)
{
if (n <= 2)
{
return 1;
}
int a = 0;
int b = 1;
int c = 1;
while (n > 2)
{
a = b;
b = c;
c = a + b;
n--;
}
return c;
}
int main()
{
int n = 0;
printf("输入你要求第几个斐波那契数:\n");
scanf("%d", &n);
int num1 = Recursive(n);
printf("递归: 第%d个斐波那契数是:%d\n", n, num1);
int num2 = nonRecursive(n);
printf("非递归: 第%d个斐波那契数是:%d\n", n, num2);
return 0;
}