0
已解决
刘意阳
初级天翼
初级天翼
题目链接: 酷町堂:7916
#include <iostream>
#include <cstring>
#define MAXN 1000+5
#define M 1000000+5
using namespace std;
char x[MAXN];
int s,m,n,sum,a[M],b[M],c[M];
string f[MAXN]={"0","1","1"};
string add(string x,string y){
int jw=0;
string s="";
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
a[0]=x.size();
b[0]=y.size();
c[0]=max(a[0],b[0]);
for(int i=1;i<=a[0];i++){
a[i]=x[a[0]-i]-'0';
}
for(int i=1;i<=b[0];i++){
b[i]=y[b[0]-i]-'0';
}
for(int i=1;i<=c[0];i++){
c[i]=a[i]+b[i]+jw;
jw=c[i]/10;
c[i]%=10;
}
if(jw!=0){
c[++c[0]]=jw;
}
for(int i=c[0];i>=1;i--){
s+=char(c[i]+'0');
}
return s;
}
string jf(string x,string y){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
a[0]=c[0]=x.size();
b[0]=y.size();
for(int i=1;i<=a[0];i++){
a[i]=x[a[0]-i]-'0';
}
for(int i=1;i<=b[0];i++){
b[i]=y[b[0]-i]-'0';
}
for(int i=1;i<=c[0];i++){
if(a[i]>=b[i]){
c[i]=a[i]-b[i];
}else{
c[i]=a[i]+10-b[i];
a[i+1]--;
}
}
while(c[c[0]]==0&&c[0]!=1){
c[0]--;
}
string s="";
for(int i=c[0];i>=1;i--){
s+=(char)(c[i]+'0');
}
return s;
}
int main(){
cin>>m>>n;
for(int i=3;i<=n;i++){
f[i]=add(f[i-1],f[i-2]);
}
cout<<jf(f[n],f[m-1]);
return 0;
}
哪位大佬帮我看一下为什么WA0 (๑•̀ㅂ•́)و✧