#include #include #include using namespace std; #define MAXN 201 int arr[MAXN][MAXN]; int len[MAXN]; void init() { memset (arr, 0, sizeof(arr)); memset (len, 0, sizeof(len)); arr[1][0] = 1, len[1] = 1; arr[2][0] = 2, len[2] = 1; for (int i = 3; i < MAXN; ++i) { for (int j = 0; j < len[i-1]; ++j) { arr[i][j] = arr[i-1][j] + arr[i-2][j]; } len[i] = len[i-1]; int jw = 0; for (int j = 0; j < len[i]; ++j) { arr[i][j] += jw; jw = arr[i][j]/10; arr[i][j] %= 10; } while (jw) { arr[i][len[i]++] = jw%10; jw /= 10; } } } void print(int n) { for (int i = len[n]-1; i >= 0; --i){ printf("%d", arr[n][i]); } printf("\n"); } int main() { int n; init(); while (~scanf ("%d", &n)) { print(n); } return 0; }