打表

Generator:

#include<stdio.h>
int f[47]={0,1,1,2,3,5};
int main(){
	printf("f[47]={0,1,1,2,3,5,");
    for(int i=6;i<=45;i++) f[i]=f[i-1]+f[i-2],printf("%d,",f[i]);
    printf("%d};",f[45]+f[44]);
}

Output:

f[47]={0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733,1134903170,1836311903};

Answer:

#include<stdio.h>
int n,f[47]={0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733,1134903170,1836311903};
int main(){
  scanf("%d",&n);
  printf("%d",f[n]);
}

一般递推

#include<stdio.h>
int n,f[47]={0,1,1,2,3,5};
int main(){
    scanf("%d",&n);
    for(int i=6;i<=n;i++) f[i]=f[i-1]+f[i-2];
    printf("%d",f[n]);
}