c 递归,递推法
#include<stdio.h> //递归 long long func(int n){ if(n==1 || n==2)return 1; return func(n-1)+func(n-2); }
//数组 long long num[100]; int main(){ int n; scanf("%d",&n); // printf("%lld\n",func(n)); num[1]=1;num[2]=1;
for(int i=3;i<=n;i++){ num[i]=num[i-1]+num[i-2]; } printf("%lld\n",num[n]); return 0; }
//记忆化
long long num[100]; long long func(int n){ if(n ==1 || n==2)return 1; if(num[n]!=0)return num[n]; return num[n] = func(n-1) + func(n-2); }