>>300 こういうことでいいのかな
#include <iostream>
#include <vector>

using namespace std;

int A(unsigned int i)
{
vector<int> v(1, 1);
while (v.size() < i) {
v.insert(v.end(), v[v.back() - 1], v.back() + 1);
}
return v[i - 1];
}

int main()
{
cout << A(10) << endl;
cout << A(100) << endl;
cout << A(1000) << endl;
}