递归和非递归分别实现求第n个斐波那契数。1,1,2,3,5,8,13
斐波那契数列由0和1开始,系数就由之前的两数相加。(Fibonacci)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
//递归方法实现求第n个斐波那契数
int fib(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
return fib(n - 1) + fib(n - 2);
}
int main()
{
int n = 0;
printf("请输入你想求斐波那契数列的第几项:");
scanf("%d", &n);
printf("斐波那契数列第%d项为:%d\n", n, fib(n));
system("pause");
return 0;
}
//非递归方法求斐波那契数列的第n项
int fib(int n)
{
int i = 1;
int j = 1;
int count = 3;
int result = 0;
if (n <= 2)
{
return 1;
}while (count <= n)
{
result = i + j;
i = j;
j = result;
count++;
}
return result;
}
int main()
{
int n;
printf("请输入你想求斐波那契数列的第几项:");
scanf("%d", &n);
fib(n);
printf("斐波那契数列第%d项为:%d\n", n, fib(n));
return 0;
}