Akagi2017 @ 2022-10-17 22:08:34
#include <bits/stdc++.h>
using namespace std;
char f[5000][150];
int main(){
int n;
scanf("%d",&n);
f[1][1]='1';
f[2][1]='2';
for(int i=3;i<=n;i++){
int jw=0;
int len1,len2;
for(int j=1;j<=2;j++){
for(int k=1;f[i-j][k]!='\0';k++){
if(j==1) len1++;
else len2++;
}
}
for(int j=1;j<=min(len1,len2);j++){
f[i][j]=(jw+(f[i-1][j]-'0')+(f[i-2][j]-'0'))%10+'0';
jw=(jw+(f[i-1][j]-'0')+(f[i-2][j]-'0'))/10;
}
int m = len1>len2 ? i-1 : i-2;
for(int j=min(len1,len2)+1;j<=max(len1,len2);j++){
f[i][j]=f[m][j];
}
f[i][min(len1,len2)+1]=f[i][min(len1,len2)+1]-'0'+jw+'0';
}
int lenn;
for(int k=1;f[n][k]!='\0';k++){
lenn++;
}
for(int i=lenn;i>=1;i++){
printf("%c",f[n][i]);
}
printf("\n");
return 0;
}
蒟蒻已经调麻了...
by liwenxi114514 @ 2022-10-17 22:41:56
@Akagi2017
数组开小了