//使用数组
#include <stdio.h>
#include <math.h>
int a[50];
int main()
{
int i;
int n;
scanf_s("%d", &n);
a[0] = 1;
a[1] = 1;
for (i = 2; i <n; i++)
{
a[i] = a[i - 1] + a[i - 2];
printf("%d\n", a[i]);
}
return 0;
//不开数组法
#include <stdio.h>
#include<math.h>
int main()
{
int a=1, b=1, c=0;
int i,n;
scanf_s("%d", &n);
for (i=3; i <=n; i++)
{
c = a + b;
a = b;//把a定义成第n-2个数
b = c;//把b定义成第n-1个数
}
printf("%d\n", c);
return 0;
}
//使用递归
#include <stdio.h>
#include <math.h>
int fibonacci(int i);
int fibonacci(int i){
if (i == 1){ return 1; }
if (i == 2){ return 1; }
else return fibonacci(i - 1) + fibonacci(i-2);
}
int main()
{
int n,sum;
scanf_s("%d", &n);
sum = fibonacci(n);
printf("%d", sum);
return 0;
}