/* -*- coding: utf-8 -*- * * 75.cc: No.75 回数の期待値の問題 - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_K = 200; /* typedef */ /* global variables */ double es[MAX_K + 1]; /* subroutines */ bool check(int k, double e) { es[k] = 0.0; for (int i = k - 1; i >= 0; i--) { double sum = 0.0; for (int j = 1; j <= 6; j++) sum += (i + j > k) ? e : es[i + j]; es[i] = 1.0 + sum / 6; } return es[0] <= e; } /* main */ int main() { int k; cin >> k; double e0 = 0.0, e1 = 1e10; for (int i = 0; i < 100; i++) { double e = (e0 + e1) / 2; if (check(k, e)) e1 = e; else e0 = e; } printf("%.5lf\n", e1); return 0; }