3 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int MAX_N = 10000; const int bi = 3e5 + 10; string fib[MAX_N + 5]; string add(string a, string b) { int ah[bi] = {0}, bh[bi] = {0}, ch[bi] = {0}, x = 0; int la = a.size(); int lb = b.size(); int lc = max(la, lb); for (int i = 0; i < la; i++) { ah[i] = a[la - 1 - i] - '0'; } for (int i = 0; i < lb; i++) { bh[i] = b[lb - 1 - i] - '0'; } for (int i = 0; i < lc; i++) { ch[i] = ah[i] + bh[i] + x; x = ch[i] / 10; ch[i] %= 10; } if (x) { ch[lc] = x; lc++; } while (lc > 1 && ch[lc - 1] == 0) { lc--; } string cj = ""; for (int i = lc - 1; i >= 0; i--) { cj += (ch[i] + '0'); } return cj; } int main() { ios::sync_with_stdio(0); cin.tie(0); fib[1] = "1"; fib[2] = "1"; for (int i = 3; i <= MAX_N; i++) { fib[i] = add(fib[i - 1], fib[i - 2]); } int n; while (cin >> n) { cout << fib[n] << endl; } return 0; }
信息
- ID
- 1185
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 213
- 已通过
- 65
- 上传者