Посчитать сумму ряда с заданной точностью - C#

Узнай цену своей работы

Формулировка задачи:

Задание: x - x^3/3!+ x^5/5!- x^7/7! .....(-1)^n+x^(2*n+1)/(2n+1)!
 class Class_Looping
    {
        public const double DOUBLE_ERROR_SUM = -1E10 + 0.1;
        public static double summm(double num, double eps, double x)
        {
            if (num > 1e6)
            {
                return DOUBLE_ERROR_SUM;
            }
            else
            {
                double sum = 0;
                double ch = 0;
                double zn = 0;
                double fct = 1;
                int sign = 1;
                for (int i = 0; i <=num; i++)
                {
                    ch =  Math.Pow(x, 2 * i + 1);

                    fct *= 2*i+1;
                    if (i % 2 != 0)
                    {
                        zn += sign * fct;
                        sign *= -1;
                        
                    }
                    sum = ch / zn;
                    sum += sum;             
                    
                }
                return sum;
            }
        }
 
    }
}
Проблема в том, что когда например у нас получается числитель x^3, то его знаменатель 1! не могу понять, как это исправить заранее спасибо!

Решение задачи: «Посчитать сумму ряда с заданной точностью»

textual
Листинг программы
    class Class_Looping
    {
        public const double DOUBLE_ERROR_SUM = -1E10 + 0.1;
        public static double summm(double num, double eps, double x)
        {
            if (num > 1e6)
            {
                return DOUBLE_ERROR_SUM;
            }
            else
            {
                double sum = 0;
                double ch = 0;
                double fct = 1;
                int sign = -1;
                for (int i = 0; i <=num; i++)
                {
                    ch =  Math.Pow(x, 2 * i + 1);
 
                    if (i == 0) 
                        fct = 1;
                    else 
                        fct *= 2*i*(2*i + 1);
                    if (i % 2 != 0)
                        ch *= sign;
                    sum = ch / fct;
                    sum += sum;  
                }
                return sum;
            }
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы