{{{~cpp #include using namespace std; #include #include unsigned int hanoi[10001] = {0,1,}; int a[10000]; int main() { vector test; int num; unsigned min, temp; for(int i = 1; i < 10001; i++) { min = 4000000000; for(int k = 0; k < i; k++) { temp = 2*hanoi[k] +pow(2,i-k) -1; if(temp <= min) { min = temp; a[i] = k; } } hanoi[i] = min; } for(i = 1; i < 30; i++) cout << i << " " << a[i] << " " << hanoi[i] << endl; while(cin >> num) test.push_back(num); for(vector::iterator j = test.begin(); j != test.end(); j++) cout << hanoi[*j] << endl; return 0; } }}}