소감 ¶
2006-01-09 Accepted 0.119 3068 |
코드 ¶
~cpp // 10049 - Self-describingSequence #include <iostream> using namespace std; #define MAX 673366 static int table[MAX]; void initTable() { int number = 2; int count = 0; table[1] = 1; table[2] = 2; table[3] = 2; for (int i = 4; i < MAX; i++) { if (count == 0) { number++; count = table[number]; } count--; table[i] = number; } } void calcCumulate() { for (int i = 1; i < MAX - 1; i++) table[i + 1] += table[i]; } void preProcess() { initTable(); calcCumulate(); } void process(int n) { int i; for (i = 1; i < MAX; i++) if (n < table[i]) break; if (n == table[i-1]) i--; cout << i << endl; } int main() { int n; preProcess(); while (cin >> n && n != 0) process(n); return 0; }