求助!!测试点都对,就是过不了
查看原帖
求助!!测试点都对,就是过不了
474282
LGC071030楼主2021/6/22 11:57

****求助!!测试点都对,就是过不了

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int x[3][1001],j,len;
int size(int y[]) {
	int ans=601;
	while (y[--ans] == 0);
	return ans;
} 
void Fib() {
	int a=0,b=0,c=0;
    a=size(x[1]);
    b=size(x[2]);
    c=size(x[3]);
    len=max(a,b);
	len=max(len,c);
	x[j][1]=0;
	for (int i=1;i<=len;i++) {
		x[j][i]+=x[(j+2)%3][i]+x[(j+1)%3][i];
		
		x[j][i+1]=x[j][i]/10;
		x[j][i]%=10;
	}
	if (x[j][len+1]) len++;
	j=(++j)%3;
}
int main() {
	int m,n;
	cin>>m>>n;
	x[0][1]=1;
	x[1][1]=1;
	x[2][1]=2;
	for (int i=3;i<=n-m;i++) Fib();
	while (x[j][len] == 0) len--;
	for (int i=len;i>=1;i--) cout<<x[j-1][i];
	return 0;
}
2021/6/22 11:57
加载中...