/* @JUDGE_ID: 32472GK 1079 C++ */ #include #include #include #include #include #include #include #include #include #include using namespace std; vector value; void make_val() { value.resize(100001); value[0] = 0; value[1] = 1; for(int i = 2; i < value.size(); i++) { if(i & 1) value[i] = value[i >> 1] + value[(i >> 1) + 1]; else value[i] = value[i >> 1]; } int max_val = 0; for(int i = 0; i < value.size(); i++) { if(value[i] > max_val) max_val = value[i]; value[i] = max_val; } } int main() { make_val(); int i; while(cin >> i, i) { cout << value[i] << endl; } }