Search code examples
c#mathematical-optimization

Calculate the sequence : n!/ (1+1/2+1/3+...+1/n)


Calculate the following sum 1!/1 + 2!/(1+1/2) + 3!/(1+1/2+1/3) + ... + n!/ (1+1/2+1/3+...+1/n), where n > 0.

public static double GetSumSix(int n)
    {
        double i, result = 0.0;

        static double factorial(double n)
        {
            double res = 1;
            for (double i = 2; i <= n; i++)
                res *= i;

            return res;
        }

        for (i = 1.0; i <= n; i++)
        {
            result += factorial(i) / (1.0 / i);
        }

        return result;
    }

Help me please , I don't understand why is my solution not working?


Solution

  • Your denominator logic is incorrect. You could create another function to work out what '1/1+1/2+...+1/n' is and use that in the denominator? right now your code will work out 1+2!*2+3!*3+...

    You could actually use something similar to your factorial method

        static double GetDenominator(double n)
        {
            double res = 1;
            for (double i = 2; i <= n; i++)
                //insert code here 
    
            return res;
        }