社区讨论

高精度+斐波拉,感觉自己很菜

P1255数楼梯参与者 10已保存回复 10

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
10 条
当前快照
1 份
快照标识符
@mi7ym2f6
此快照首次捕获于
2025/11/21 05:44
4 个月前
此快照最后确认于
2025/11/21 05:44
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstring>

using namespace std;
const int L = 5000;
struct stu{
    string a;
}s[5010];
string add(string a,  string b) {
    string ans;
    int na[L] = {0},nb[L] = {0};
    int la = a.length(), lb = b.length();
    for(int i = 0; i < la; i++)na[la - 1 - i] = a[i] - '0';
    for(int i = 0; i < lb; i++)nb[lb - 1 - i] = b[i] - '0';
    int lmax = la > lb ? la:lb;
    for(int i = 0; i<lmax; i++) {
        na[i]+=nb[i];
        na[i + 1] += na[i]/10;
        na[i]%=10;
    }
    if(na[lmax])lmax++;
    for(int i = lmax - 1; i >= 0; i--) ans+=na[i] + '0';
    return ans;
}
int main()
{   int t;
    cin >> t;
    if(t == 0){cout << 0<<endl;return 0;}
    s[1].a = '1';
    s[2].a = '2';
    for(int i = 3; i <= t; i++) {
    s[i].a = add(s[i - 1].a , s[i - 2].a);
    }
    cout << s[t].a<<endl;
    return 0;
}

回复

10 条回复,欢迎继续交流。

正在加载回复...