请用数组和递归的方式分别实现计算斐波那契数列的第20项
1、1、2、3、5、8、13、21、34、......,n=1和n=2的时候都是输出1
公式:f(n) = f(n-1)+f(n-2); 例如第20项,6765
数组
#include <stdio.h>
int main(int argc, char const *argv[])
{
printf("请输入你要计算的第几项:");
int n;
scanf("%d",&n);
int str[100] = {1,1};
int i;
for (i = 2; i < 100; i++)
{
str[i] = str[i - 1] + str[i - 2];
}
printf("%d\n", str[n-1]);
return 0;
}
递归函数
#include <stdio.h>
int dgfeibo(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return dgfeibo(n - 1) + dgfeibo(n - 2);
}
}
int main(int argc, char const *argv[])
{
int n = dgfeibo(20);
printf("n = %d\n", n);
return 0;
}