社区讨论
50分求调
P1255数楼梯参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mkjqvi8c
- 此快照首次捕获于
- 2026/01/18 21:00 2 个月前
- 此快照最后确认于
- 2026/01/22 17:25 2 个月前
CPP
#include<iostream>
#include<ostream>
#include<cstring>
using namespace std;
struct Bigint {
int len, val[1667];
Bigint(int x = 0) {
memset(this->val, 0, sizeof this->val);
for (this->len = 1; x; this->len++) {
this->val[this->len] = x % 10;
x /= 10;
}
this->len--;
}
int& operator[](int index) {return val[index];}
Bigint operator+(Bigint& other) {
Bigint result;
memset(result.val, 0, sizeof result.val);
for (int i = 1; i <= max(this->len, other.len); i++)
result[i] += (*this)[i] + other[i];
for (int i = 1; i <= max(this->len, other.len); i++) {
result[i] += result[i - 1] / 10;
result[i - 1] %= 10;
if (result[i]) result.len = i;
}
return result;
}
} f[5010];
ostream& operator<<(ostream& os, const Bigint num) {
for (int i = num.len; i >= 1; i--) os << num.val[i];
return os;
}
int main() {
int n; cin >> n;
f[1] = 1, f[2] = 2;
for (int i = 3; i <= n; i++) f[i] = f[i - 1] + f[i - 2];
cout << f[n] << endl;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...