#include double attempt(double e, long long n) { std::vector dp(n + 1); for (int i = 1; i <= n; ++i) { for (int j = 1; j <= 6; ++j) { if (i > j) dp[i] += dp[i - j]; if (j > i) dp[i] += e; } dp[i] = dp[i] / 6 + 1; } return dp[n]; } double naive_solve(long long n) { double lb = 0, ub = 1e12; for (int i = 0; i < 100; ++i) { double mb = (lb + ub) / 2.; (attempt(mb, n) >= mb ? lb : ub) = mb; } return (lb + ub) / 2.; } signed main() { std::ios::sync_with_stdio(false); int T; std::cin >> T; while (T--) { int64_t N; std::cin >> N; if (N < 200) std::cout << std::fixed << std::setprecision(13) << naive_solve(N) << std::endl; else std::cout << std::fixed << std::setprecision(13) << ((N + 1) + 2. / 3) << std::endl; } return 0; }