【杭电】[1715]大菲波数

这里写图片描述
这里写图片描述

大数运算使用字符串模拟

在斐波那契数列中是对大数的多次想加
为了方便编写函数所以可以使用string类型

函数完成后只需像正常求数列那样调用即可

#include<stdio.h>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
string F[1020]= {"0","1","2"};
string add(string a,string b) {
    a="0"+a;
    int la=a.length();
    int lb=b.length();
    for(int i=1; i<=la; i++) {
        if(lb-i>=0)
            a[la-i]+=b[lb-i]-'0';
        if(a[la-i]-'0'>9) {
            a[la-i]-=10;
            a[la-i-1]++;
        }
    }
    while(a[0]=='0')
        a.erase(0,1);
    return a;
}
int main() {
    for(int i=3; i<1002; i++) {
        F[i]=add(F[i-1],F[i-2]);
    }
    int T;
    scanf("%d",&T);
    while(T--) {
        char s[220];
        scanf("%s",&s);
        cout<<F[strlen(s)]<<endl;
    }
    return 0;
}

题目地址:【杭电】[1715]大菲波数

posted @ 2016-07-18 12:03  BoilTask  阅读(12)  评论(0编辑  收藏  举报