string 处理高精度
斐波那契数列 的 高精度
#include<iostream>
#include<stdio.h>
#include<string>
#include<string.h>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<cmath>
#include<iomanip>
using namespace std;
typedef int _____I;
const int N=1e6+10;
const int INF=0x3f3f3f3f;
#define ERX(___I,__I,_I) for(_____I ___I = __I;___I < _I; ___I++)
#define ERD(___I,__I,_I) for(_____I ___I = __I;___I <= _I; ___I++)
#define RED(___I,__I,_I) for(_____I ___I = __I;___I >= _I; ___I--)
int n;
string f[5050];
string add(string a,string b){
if(a.size()<b.size()) swap(a,b);
int i,j;
for(i=a.size()-1,j=b.size()-1;i>=0;i--,j--){
a[i]=char(a[i]+(j>=0?b[j]-'0':0));//如果j大于等于0 也就是b加完了
if(a[i]-'0'>=10){
a[i]=char((a[i]-'0')%10+'0');//余数
if(i) a[i-1]++;
else a="1"+a;
}
}
return a;
}
int main(){
cin>>n;
f[0]="0";
f[1]="1";
f[2]="2";
for(int i=3;i<=n;i++) f[i]=add(f[i-1],f[i-2]);
cout<<f[n]<<endl;
return 0;
}