任何递归都需要数组记录 int fib(int n){ if(n==0||n==1) { return n; } int dp[100000]={0}; int i=2; dp[1]=1; for(int i=2;i<n+1;i++) { dp[i]=(dp[i-1]+dp[i-2])%1000000007; } return dp[n]; }