首页 > 学院 > 开发设计 > 正文

HDU1715 大菲波数

2019-11-06 07:24:10
字体:
来源:转载
供稿:网友

问题链接:HDU1715 大菲波数。

问题简述:参见上述链接。

问题分析:大数问题。为了避免重复计算,需要打表。

程序说明:(略)。

AC的C++语言程序如下:

/* HDU1715 大菲波数 */#include <iostream>#include <string>using namespace std;const int MAXN = 1000;string s[MAXN+1];void maketable(int n){    string a, b;    s[1] = "1";    s[2] = "1";    for(int i=3; i<=n; i++) {        a = "00" + s[i-2];        b = "0" + s[i-1];        int val, carry=0;        for(int j=(int)a.length()-1, k=(int)b.length()-1; k>=0; j--, k--) {            val = (a[j] - '0') + (b[k] - '0') + carry;            carry = val / 10;            b[k] = val % 10 + '0';        }        if(b[0] == '0')            b.erase(0, 1);        s[i] = b;    }}int main(){    int n, pi;    maketable(MAXN);    cin >> n;    while(n--) {        cin >> pi;        cout << s[pi] << endl;    }    return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表