Simple C# DP Solution
\n    public class Solution\n    {\n        public double New21Game(int n, int k, int w)\n        {\n            int maxPoints = k - 1 + w;\n            double[
```\n    public class Solution\n    {\n        public double New21Game(int n, int k, int w)\n        {\n            int maxPoints = k - 1 + w;\n            double[] dp = new double[maxPoints + 1];\n\n            for (int lastPoints = k; lastPoints <= maxPoints; lastPoints++)\n            {\n                dp[lastPoints] = (lastPoints <= n ? 1 : 0);\n            }\n\n            double sum = 0;\n            for (int nextDraw = 1; nextDraw <= w; nextDraw++)\n            {\n                sum += (dp[k - 1 + nextDraw] / w);\n            }\n\n            for (int points = k - 1; points >= 0; points--)\n            {\n                dp[points] += sum;\n                sum -= (dp[points + w] / w);\n                if (points != 0)\n                {\n                    sum += (dp[points] / w);\n                }\n            }\n\n            return dp[0];\n        }\n    }\n```
[]