······
  • 板块P1255 数楼梯
  • 楼主equipy_rrt
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/13 16:59
  • 上次更新2023/12/13 19:27:12
查看原帖
······
1078964
equipy_rrt楼主2023/12/13 16:59
#include<bits/stdc++.h>
#define maxn 2000
using namespace std;

string f[maxn];
string add(string a,string b){
	int a1[maxn],b1[maxn],c1[maxn],len=max(a.size(),b.size());
	string ans;
	for(int i=a.size()-1,j=1;i>=0;i--,j++) a1[j]=a[i]-'0';
	for(int i=b.size()-1,j=1;i>=0;i--,j++) b1[j]=a[i]-'0';
	for(int i=1;i<=len;i++){
		c1[i]+=a1[i]+b1[i];
		c1[i+1]=c1[i]/10;
		c1[i]%=10;
	}
	if(c1[len+1]) len++;
	for(int i=len-1,j=1;i>=1;i--,j++)
		ans[j]=c1[i]+'0';
	return ans;
}

string fib(int n){
	if(f[n]!="-1") 
		return f[n];
	else f[n]=add(fib(n-2),fib(n-1));
	return f[n];
}

int main(){
	int k;
	for(int i=3;i<maxn;i++)
		f[i]="-1";
	f[1]="1",f[2]="2";	
	cin>>k;
	cout<<fib(k)<<endl;
	return 0;
}

第一次:CE

第二次:《色彩缤纷》

备注:请问plus是关键字或内置函数吗?(我用了这个函数名,结果会引起歧义)

2023/12/13 16:59
加载中...