@MyOnAsSalat

Как заменить пересчёт на коэффицент?

Преподователь сделал замечание:
Не нужно считать степени для каждого слагаемого. Требуется найти взаимосвязь между ними, коэффициент.
Как изменить код чтобы домножать на коэффицент?
5a1c6b7083d9c287062426.jpeg
using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Введите X: ");
        double x = Convert.ToDouble(Console.ReadLine());
        Console.WriteLine("Введите K: ");
        double k = Convert.ToDouble(Console.ReadLine());
        Console.WriteLine("Введите EPS: ");
        double EPS = Convert.ToDouble(Console.ReadLine());
        if (Math.Abs(x) > 1)
        {
            Console.WriteLine("Неверное значение аргумента");
            return;
        }
        double s = 0;
        double last = 0;
        for (int i = 0; ; i++)
        {
            double cur = (f(2 * i) * Math.Pow(x, 2 * i + 1)) / ((Math.Pow(4, i) * Math.Pow(f(i), 2) * (2 * i + 1)));
            if (Math.Abs(cur - last) < EPS) break;
            s += cur;
            last = cur;
        }
        Console.WriteLine("f1()");
        Console.WriteLine(Math.PI / 2 - s);
        s = 0;
        last = 0;
        for (int i = 0;i<=k ; i++)
        {
            double cur = (f(2 * i) * Math.Pow(x, 2 * i + 1)) / ((Math.Pow(4, i) * Math.Pow(f(i), 2) * (2 * i + 1)));
           
            s += cur;
            last = cur;
        }
        Console.WriteLine("f2()");
        Console.WriteLine(Math.PI/2 - s);
        Console.WriteLine("f()");
        Console.WriteLine(Math.Acos(x));
        Console.ReadKey();

    }
    //факториал
    static double f(int x)
    {
        return (x == 0) ? 1 : x * f(x - 1);
    }
}
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы