p1255 【高精度 string实现】

来源:互联网 发布:虚拟软件官网 编辑:程序博客网 时间:2024/06/06 03:00

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;}
原创粉丝点击