不懂呐 ! ! !
求大佬帮助
#include<bits/stdc++.h>
using namespace std;
int dp[5003][5003],len=1,n;
void H(int a){
for(int i=1;i<=len;i++)dp[a][i]=dp[a-1][i]+dp[a-2][i];
for(int i=1;i<=len;i++){
if(dp[a][i]/10!=0 && dp[a][i+1]==0)len++;
dp[a][i+1]+=dp[a][i]/10;
dp[a][i]%=10;
}
}
int main(){
scanf("%d",&n);
dp[1][1]=1;
dp[2][1]=2;
for(int i=3;i<=n;i++)H(i);
while(dp[n][len]==0)len--;
for(int i=len;i>=1;i--)printf("%d",dp[n][i]);
return 0;
}