AC代码
#include<iostream>
#include<vector>
#include<string>
using namespace std;
//C = A + B
vector<int> add(vector<int>& A, vector<int>& B)
{
vector<int> C;
int t = 0;
for (int i = 0; i < A.size() || i < B.size(); i++)
{
if (i < A.size()) t += A[i];
if (i < B.size()) t += B[i];
C.push_back(t % 10);
t /= 10;
}
if (t) C.push_back(1);
return C;
}
int main()
{
/*
1 1
2 1
3 2
*/
int m, n;
string a, b;
vector<int> A, B, D;
cin >> m >> n;
if (n - m < 2)
{
cout << 1;
return 0;
}
else
{
for (int i = m + 2; i <= n; i++)
{
D.clear();
if (i == m + 2)
{
a = b = "1";
}
for (int j = a.size() - 1; j >= 0; j--) A.push_back(a[j] - '0');
for (int j = b.size() - 1; j >= 0; j--) B.push_back(b[j] - '0');
auto C = add(A, B);
a.erase();
b.erase();
for (int j = B.size() - 1; j >= 0; j--) a.push_back(B[j] + '0');
for (int j = C.size() - 1; j >= 0; j--) b.push_back(C[j] + '0');
A.clear();
B.clear();
for (int j = C.size() - 1; j >= 0; j--) D.push_back(C[j]);
}
for (int i = 0; i < D.size(); i++) printf("%d", D[i]);
}
return 0;
}