#include #include #include #include #include #include using namespace std; int main() { int K; cin >> K; // DP[ 状態S ] := からゴールするまでの期待回数 vector DP(K+1); DP[K] = 0; // ガウス・ザイデルとかいうのでやってみる for (int n=0;n<1000;n++) { // 妥当なループ数いくつ? for (int i=K-1;0<=i;i--) { double tmp = 1.0; for (int j=1;j<=6;j++) { if (i+j <= K) tmp += DP[i+j] * (double)(1.0/6.0); else tmp += DP[0] * (double)(1.0/6.0); } DP[i] = tmp; } } cout << fixed << setprecision(12) << DP[0] << endl; }