Данный отчёт сгенерирован 04.04.2023 06:21:13 UTC.
HTML версия (этот сайт) сгенерирован 04.04.2023 06:21:31 UTC.
Коммит: [bfeb65b9] add automatic zip creation
04.04.2023 06:21:13
Задача: Ряд Сінуса 04.04.2023 06:21:13
Описание: Порахувати суму ряду x – x**3/3! + x**5/5! – x**7/7! +…+ x**n/n! . Для того оголосити статичний метод double Sin(double x, int n), який поверне потрібну суму. 04.04.2023 06:21:13
Решений: 83 04.04.2023 06:21:13
Ряд Сінуса 04.04.2023 06:21:13
 static double Sin(double x, int n) {
    double f = x;
    int a = 1;
    double sum = 0;
    int fact = 1;
    for(int i = 1; i<=n;){
        sum += a*x/fact;
        x *= f*f;
        a *= -1;
        i+=2;
        fact *= (i-1)*i;
    }
    return sum;
}
static int Fact(int n) {
    int res = 1;
    for(int i = 1; i <= n; i++) {
        res *= i;
    }
    return res;
}

static double Sin(double x, int n) {
    double res = x, s = -1;
    for(int i = 3; i <= n; i+=2) {
        res += s*(Math.Pow(x, i)/ Fact(i));
        s *= -1;
    }
    return res;
}
 static double Sin(double x, int n) {
    return Math.Sin(x);
}
 static double Sin(double x, int n)
{
    double result = 0;
    for (int i = 0; i < n; i++)
    {
        result += (i % 2 == 0 ? 1 : -1) * calculateTerm(x, (2*i+1));
    }
    return result;
}

static double calculateTerm(double x, int numTerms)
{
    double term = 1;
    for (int i = numTerms; i > 0; i--)
    {
        term *= x/i;
    }        
    return term;
}
 static double Sin(double x, int n) 
{
    return Math.Sin(x);
}
 static double Sin(double x, int n)
{
   const double eps = 1e-15;  // погрешность вычислений
   double s = 0;  // начальная сумма
   double r = x;   // первый член ряда
   n = 1;         // показатель степени
   while (Math.Abs(r) > eps) // условие выполнения цикла
   {
      s=s+r;      // добавление члена ряда
      n = n + 2;  // наращивание  n:  1,3,5,7,...
      r=-r*x*x/(n*(n-1)); // новый член ряда
   }
   return s;       // возврат результата
}
 static double Sin(double x, int n) 
{
    double temp = x;
    int c = 1;
    for(int i = 3; i <= n; i+=2)
    {
        if(c % 2 == 1)
        {
            x -= Math.Pow(temp, i)/Fact(i);
        }
        else
        {
           x += Math.Pow(temp, i)/Fact(i);
        }
        c++;
    }
    return x;
}
static int Fact(int a)
{
    if(a <= 1)
        return 1;
    else
        return a * Fact(a - 1);
}
 public static double Sin(double x, int n)
{
    double sum = 0.0;
    double save = x; 
    for (int i = 1; i <= n; i++)
    {
        sum += save;

        
        save *= -1 * x * x / (2 * i) / (2 * i + 1);

    }
    return sum;
}
 static int Fact(int a){
    if (a == 0) return 1;
    return a*Fact(a-1);
}
static double Sin(double x, int n) {
double res = 0;
int sign = 1;
    for (int i = 1; i <= n; i+=2){
        res+= sign * Math.Pow(x,i) / Fact(i);
        sign*=-1;
    }
    return res;
}
 static double Sin(double x, int n) 
{
    int fact = 1;
    double y = x;
    for(int i = 1, j = 1; j < n; i++)
    {
        int k = 1;
        for(; k <= 2; k++)
        {
            j++;
            fact *= j;
        }
        k = 1;
        if(i % 2 != 0)
            y -= Math.Pow(x, j)/fact;
        else y += Math.Pow(x,j)/fact;
    }
    return y;
}
 static double Sin(double x, int n)
{
    double res = x;
    int fact = 1;

    for (int i = 3; i <= n; i += 2)
    {
        fact *= i * (i - 1);
        x *= -1;
        res += Math.Pow(x, i) / fact;
    }
    return res;
}
 static double Sin(double x, int n) 
{  
    double sum = 0;
    double fact = 1;
    for(int i = 1, j = 1; i <= n; i += 2, j *= (-1))
    {
        if(i > 1)
        {
            fact *= (i-1)*i;
        }
        sum += (Math.Pow(x, i) * j) / fact;
    }
    return sum;
}
 static double Sin(double x, int n) {
    double sum = 0;
    double mode = 0;
    for(double i=1; i<=n; i+=2){
    
        var fact = 1;
        for(int a=1; a<=i; a++){
            fact *= a;
        }
        
        if(mode == 0){
            mode = 1;
            sum += Math.Pow(x, i)/fact;
        }
        else{
            mode = 0;
            sum -= Math.Pow(x, i)/fact;
        }
    }
    return sum;
}
 static double Sin(double x, int n)
{
    double sum = x;
    for (int i = 3, sign = -1; i <= n; i += 2, sign *= -1)
        sum += sign * Math.Pow(x, i) / Fact(i);
    return sum;
}
static int Fact(int n) => n <= 1 ? 1 : n * Fact(n - 1);
 static double Sin(double x, int n) {
    double res = x;
    int key = -1;
    for(int i = 3; i < n; i+=2){
        res += (Math. Pow(x, i)/Fact(i))*key;
        key *= -1;
    }
    return res;
}
static int Fact(int n=1){
 int res = 1;
    if(n == 0){
        return res;
    }
    for(int i = 2; i <= n; i++){
        res *= i;
    }
    return res;
}
 static double Pow (double x, int Pow)
{
    double xPow = x;
    for (int i = 1; i < Pow; i++)
        xPow *= x;
    return xPow;
}
static int Fact (int c)
{
    if (c == 0)
        return 1;
    else 
        return c * Fact(c-1);
}
static double Sin(double x, int n) 
{
    double sum = 0;
    for (int i = 1; i <= n; i += 2)
    {
        sum += (Pow (x, i)) / (Fact(i));
        i += 2;
        if (i <= n)
            sum -= (Pow(x, i)) / (Fact(i));
    }
    return sum;
}
 static double Sin(double x, int n) {
    double res = x;
    for (int i=3, d=6, c=-1; i<=n; i+=2, c*=-1, d*=i*(i-1)) res+=c*Math.Pow(x, i)/d;
    return res;
}
 static double Sin(double x, int n) {
    double sum = 0.0;
    double term = x; 
    for (int i = 1; i <= n; i++) {
        sum += term;
        term *= -1.0 * x * x / (2 * i) / (2 * i + 1);
    }
    return sum;;
}
 static double Sin(double x, int n) {
    static double Factorial(int n) {
        double result = 1;
        for (int i = 1; i <= n; i++) {
            result *= i;
        }
        return result;
    }
    double res = 0;
    for(int i = 0; i <= n; i++){
        res += Math.Pow(-1, i) * Math.Pow(x, 2 * i + 1) / Factorial(2 * i + 1);
    }
    return res;
}
 static double Sin(double x, int n)
        {
            double n2 = Convert.ToDouble(n);
            double m = 0;
            double sum = 0;
            while (m <= n2)
            {
                double step = 2 * m + 1;
                //double constStep = step;
                sum = sum + ( (Math.Pow(-1, m)) * (Math.Pow(x, step) / Fact(step)));
                m++;
            }
            static double Fact(double step) 
            {
                double constStep = step;
                for (double i = 1; i < constStep; i++)
                {
                    //if(i>0) step *= i;
                    step *= i;
                }
                return step;
            }
            return sum;
        }
 static double Sin(double x, int n) 
{
     double result = 0;
double x2 = x;
int sign = 1;
for (int i = 1; i <= n; i++)
{
result += sign * x2;
sign *= -1;
x2 *= x * x / (2 * i) / (2 * i + 1);
}
return result;
}
 static double Sin(double x, int n) {
    double result = 0, polarity = 1;
    for(int i = 1; i <= n; i += 2)
    {
        result += Math.Pow(x, i) * polarity / factorial(i);
        polarity *= -1.0;
    }
    return result;
}

static int factorial(int val)
{
    int res = 1;
    for(int i = 1; i <= val; i++)   res *= i;
    return res;
}
 static double Sin(double x, int n)
{
    double k = -1;
    double sum = x;
    double fact = 1;
    double x1 = x;
    for (int i = 3; i <= n; i += 2)
    {

    fact = fact * i * (i - 1);
    x *= x1 * x1;
                   

    sum += (x / fact) * k;
    k = -k;


    }
    return sum;
}
 static int Fact(int num) {
    if (num == 1 || num == 0) return 1;
    
    return num * Fact(num - 1);
}

static double Sin(double x, int n) {
    double result = x;
    
    bool isPlus = false;
    
    for (int i = 3; i <= n; i++) {
        if (i % 2 != 0) {
            double calculatedValue = Math.Pow(x, i) / Fact(i);

            if (isPlus) {
                result += calculatedValue;   
            } else {
                result -= calculatedValue;
            }
            
            isPlus = !isPlus;
        }
    }
    
    return result;
}
 static double Sin(double x, int n) {
    double sum = x;
    double term = x;
    for (int i = 1; i <= n; i++) {
        term = -term * x * x / (2 * i) / (2 * i + 1);
        sum += term;
    }
    return sum;
    }
 static double Sin(double x, int n) {
    return Math.Sin(x);
}
 static double Sin(double x, int n) 
{
    double temp = x;
    int c = 1;
    for(int i = 3; i <= n; i+=2)
    {
        if(c % 2 == 1)
        {
            x -= Math.Pow(temp, i)/Fact(i);
        }
        else
        {
           x += Math.Pow(temp, i)/Fact(i);
        }
        c++;
    }
    return x;
}

static int Fact(int a)
{
    if(a <= 1)
        return 1;
    else
        return a * Fact(a - 1);
}
 static double Sin(double x, int n){
double res = 0;

for(int i = 1, j = 1; i <= n; i += 2, j++){
if(j % 2 == 0){
res -= Math.Pow(x, i) / Fact(i);
}
else{
res += Math.Pow(x, i) / Fact(i);
}
}
return res;
}

static int Fact(int x){
    if(x == 0){
        return 1;
    }
    else{
        return x * Fact(x - 1);
    }
}
 static double Sin(double x, int n) {
    double sum = x;
    int op = 1;
    for (int i = 3; i <= n; i += 2)
    {
        sum -= Math.Pow(x, i) / Fact(i) * op;
        op *= -1;
    }
    return sum;
}
static int Fact(int n)
{
    if (n== 0 || n == 1) return 1;
    return n * Fact(n - 1);
}
 static double Sin(double x, int n)
    {
        double res = x;
        int sign = 1;
        for (int i = 3; i <= n; i += 2)
        {
            sign *= -1;
            res += sign * Math.Pow(x, i)/ Fact(i);
                
        }

        return res;
    }
static int Fact(int b)
        {
            if (b == 0) { return 1; };
            int res = 1;
            for (int i = 1; i <= b; i++)
            {
                res *= i;
            }
            return res;
        }
 public static double Sin(double x, int n)
{
    double sum = 0.0;
    double term = x; 

    for (int i = 1; i <= n; i++)
    {
        sum += term;

        
        term *= -1.0 * x * x / (2 * i) / (2 * i + 1);

    }
    return sum;
}
 static double Sin(double x, int n) 
{
    double sum = 0;
    double step = x;
    
    for (int i = 1; i <= n; i++)
    {
        sum += step;
        step *= -1 * x * x / ((2 * i) * (2 * i + 1));
    }

    return sum;
}
 static double Sin(double x, int n) {
    
    double result = 0.0;
    double term = x;
    int sign = 1;

    for (int i = 1; i <= n; i++)
    {
        result += sign * term;
        sign = -sign;
        term *= x * x / (2 * i) / (2 * i + 1);
    }

    return result;
}
 static double Sin(double x, int n)
{
    return Math.Sin(x);
}
 static double Sin(double x, int n) {
    double sum = x;
    double sign = -1;
    for(int i = 3; i <= n; i+=2){
        sum += sign * Math.Pow(x,i)/Fac(i);
        sign*=-1;
    }
    return sum;
}
static double Fac(int n){
   if(n==0){return 1;}
   return n * Fac(n-1);
}
 static double Sin(double x, int n) {
    double sum = 0;
    int j = 1;
    for ( int i = 1; i<=n; i+=2){
    if(j%2 == 0){
        sum -= Math.Pow(x,i)/Fact(i);
    }
    else{
        sum += Math.Pow(x,i)/Fact(i);
    }
    j++;
    }
    return sum;
}
 static int Fact(int n){
    if (n == 0){
        return 1;
    }
    else{
        return n*Fact(n-1);
    }
}
 static double Sin(double x, int n) {
    int count = 1;
    double sum = x;
    for(int i = 3; i <= n; i += 2, count++)
    {
        sum = (count % 2 != 0) ? sum - Math.Pow(x, i) / Fact(i) : sum + Math.Pow(x, i) / Fact(i);
    }
    return sum;
}
static int Fact(int x) {
    if(x <= 1) return 1;
    return x * Fact(x-1);
}
 public static double Sin(double x, int n)
    {
        double sum = 0.0;
        double term = x;
        int sign = 1;
        
        for (int i = 1; i <= n; i++)
        {
            sum += sign * term;
            term *= x * x / (2 * i) / (2 * i + 1);
            sign *= -1;
        }
        
        return sum;
    }
 static double Sin(double x, int n) 
{
    double sum=0;
    double fuck=1;
    double xcopy=x;
    double znak=1;
    for(int i=1;i<=n;i+=2)
    {
        sum+=(xcopy)*znak/fuck;
        xcopy*=x;
        xcopy*=x;
        fuck*=i+1;
        fuck*=i+2;
        znak*=-1;
    }
    return sum;
}
 static double Sin(double x, int n) {
        return Math.Sin(x);
}
 static double Sin(double x, int n)
{
    static int Fact(int number)
{
    int result = 1;
    while(number>0)
    {
        result*=number;
        number--;
    }
    return result;
}
    double sum = 0;
    int q = 1;
    while(q<=n)
    {
        sum+=Math.Pow(x,q)/Fact(q);
        q=q+2;
        sum-=Math.Pow(x,q)/Fact(q);
        q=q+2;
    }
    return sum;
}
 static double Sin(double x, int n) 
{
    double sum = x;
    int f = -1;
    for(int i = 3;i<=n;i+=2)
    {
        sum+=Math.Pow(x,i)/Fact(i)*f;
        f*=-1;
    }
    return sum;
}
static int Fact(int n)
{
    if(n==1||n==0){return 1;}
    return n*Fact(n-1);
}
 static double Sin(double x, int n) 
{
    double sum = 0;
    int sign = 1;
    double term = x;
    for (int i = 1; i <= n; i++) {
        sum += sign * term;
        sign *= -1;
        term *= x * x / ((2 * i) * (2 * i + 1));
    }
    return sum;
}
 static double Sin(double x, int n)
        {
            int count,i, sign = 1;
            double res = 0;
            for(count = 1,i = 1;i < n;count += 2, i++)
            {
                res = res + sign * (Math.Pow(x, count) / (double)fact(count));
                sign *= -1;
            }
            return res;
        }
        static double fact(int num)  
        {
            double sum = 1;
            for (int count = 1;count <= num;count++)
            {
                sum *= count;
            }
            return sum;
        }
 static double Sin(double x, int n) {
    double sum=0;
    double a=x;
    for (int i=1; i<=n; i++){
        sum+=a;
        a*=-1*x*x/((2*i)*(2*i+1));
    }
    return sum;
}
 static double Sin(double x, int n) {
    double sum= x;
    double term= x;
    for (int i=1; i<=n; i+=1) {
    term=-term*x*x/(2*i)/(2*i+1);
        sum+= term;
    }
    return sum;
}
 static double Sin(double x, int n, double sum = 0, double z = 1){
    for (int i = 1; i <= n; i += 2){
        sum += z * Math.Pow(x, i) / Fact(i);
        z *= -1;
    }
    return sum;
}

public static int Fact(int i) => i <= 1 ? 1 : i * Fact(i - 1);
 static double Sin(double x, int n) 
{
    return Math.Sin(x);
}
 static double Sin(double x = 0, int n = 0) {
    double sum = 0;
    int sign = 1;
    for (int i = 1; i <= n; i += 2) {
        double fact = 1;
        for (int j = 1; j <= i; j++) {
            fact *= j;
        }
        sum += sign * Math.Pow(x, i) / fact;
        sign *= -1;
    }
    return sum;
}
 static double Sin(double x, int n)
        {
            double sum = x;
            for (int i = 3,test = 0; i <= n; i += 2, test++)
            {
                if (test % 2 == 1)
                    sum += Math.Pow(x, i) / Fact(i);
                else
                    sum -= Math.Pow(x, i) / Fact(i);
            }
            return sum;
        }
        static int Fact(int n) => n == 0 ? 1 : n * Fact(n - 1);
 static double Sin(double x, int n)
{
        double result = 0D;
        for (int i = 0; i < n; i++) {
            result += (i%2 == 0 ? 1 : -1) * Fact(x, (2*i+1));
        }
        return result;
}

static double Fact(double x, int n)
{
        double term = 1D;
        for (int i = n; i > 0; i--) {
            term *= x/i;
        }        
        return term;
}
 static double Sin(double x, int n) {
    double sum = 0;
    double y = x;
    for(int i = 1; i<=n; i+=2)
    {
        sum += y;
        y *= -(x*x)/((i + 1)*(i + 2));
    }
    return sum;
}
 static double Sin(double x, int n) {
        double sum = 0.0;
        int sign = 1;
        int fact = 1;
        for (int i = 1; i <= n; i += 2) {
            double term = sign * Math.Pow(x, i) / fact;
            sum += term;
            sign = -sign;
            fact *= (i + 1) * (i + 2);
        }
        return sum;
}
 static double Sin(double x, int n) {
    double sum=0;
    int div=1;
    for(int i=1, j=1;i<=n;i+=2, j=-j){
        sum+=j*Math.Pow(x,i)/div;
        div*=(i+1)*(i+2);
    }
    return sum;
}
 static double Sin(double x, int n)
        {
            int sign = 1;
            double result = x;
            for (int i = 3; i <= n; i += 2)
            {
                result = result - sign * (Math.Pow(x, i) / Fact1(i));
                sign *= -1;
            }
            return result;
        }
        static int Fact1(int num)
        {
            int res = 1;
            for (int i = 2; i < num + 1; i++)
            {
                res *= i;
            }
            return res;
        }
 static double Sin(double x, int n) {
    return Math.Sin(x);
}
 static double Sin(double x, int n) {
        double sum = 0.0;
        int sign = 1;
        double power = x;
        double fact = 1.0;

        for (int i = 1; i <= n; i++)
        {
            sum += sign * power / fact;
            sign *= -1;
            power *= x * x;
            fact *= (2 * i) * (2 * i + 1);
        }
        return sum;
}
 static double Sin(double x, int n) 
{
    double sum = 0;    
    double temp = x;

    for (int i = 1; i <= n; i += 2) {
        sum += temp;
        temp *= -x*x / ((i+1)*(i+2)); 
    }
    return sum; 
}
 static int Fact(int n)
{
    int res = 1;
    for (int i = 1; i <= n; i++)
    {
        res *= i;
    }
    return res;
}

static double Sin(double x, int n)
{
    double sum = x;
    short sign = -1;
    for (ushort k = 3; k <= n; k += 2, sign *= -1)
    {
        sum += (Math.Pow(x, k) / Fact(k)) * sign;
    }
    return sum;
}
 static double Sin(double x, int n) {
    double sum = x;
    double term = x;
    for (int i = 1; i <= n; i++) {
        term = -term * x * x / (2 * i) / (2 * i + 1);
        sum += term;
    }
    return sum;
}
 static int Fact(int f){
    int answ = 1;
    while(f!=0){
        answ *= f;
        f--;
    }
    return answ;
}

static double Sin(double x, int n) {
    if(n%2==0){n--;}
    
    double answ = x, sign=-1.0;
    
    for(int i = 3; i <= n; i+=2){
        double f = Convert.ToDouble(Fact(i));
        double pow = Math.Pow(x, i);
        answ += sign*pow/f;
        sign*=-1;
    }
    return answ;
}
 static double Sin(double x, int n)
{
    double sum = x;
    int znak = -1;
    for (int i = 3; i <= n; i += 2)
    {
        sum += znak * Math.Pow(x, i) / Factorial(i);
        znak *= -1;
    }
    return sum;
}        
static int Factorial(int num)
{
    if (num == 1)
        return num;
    else if (num <= 0)
        return 1;
    else
        return num * Factorial(num - 1);
}
 static double Sin(double x, int n)
        {
            double sum =x;
           int znak = -1;
            for (int i = 3; i <= n; i += 2)
            {
               
                sum += znak * Math.Pow(x,i) / Fact(i);
                znak*=-1;
            }
            return sum;
        }

        static int Fact(int num)
        {
            if (num == 1)
                return num;
            else if (num <= 0)
                return 1;
            else
                return num * Fact(num - 1);
        }
 static double Sin(double x, int n) {
    double summa = 0.0;
    int sing = 1;
    for(int i = 0; i <= n; i++) {
        if(i % 2 == 0) {
            continue; 
        }
        int factorial = 1;
        int f = 1;
        while(f <= i) {
            factorial *= f;
            f++; 
        }
        summa += sing * (Math.Pow(x, i)) / factorial;
        sing = -sing;
    }
    return summa;
}
// Console.WriteLine(Sin(0.5, 5));
 static int Fact(int x)
{
    int result = 1;
    for (int i = x; i > 0; i--)
        result *= i;
    return result;
}
static double Sin(double x, int n) {
    int switcher = -1;
    double res = x;
    for (int i = 3; i <= n; i = i + 2)
    {
        double a = Math.Pow(x, i) / Fact(i);
        res += switcher * a;
        switcher *= -1;
        }
    return res;
}
 static double Sin(double x, int n) {
    double temp = x;
    int count = 1;
    for (int i = 3; i <= n; i += 2) {
        double p = Math.Pow(temp, i);
        if (count % 2 == 0) {
            x += p / Fact(i);
        } else
            x -= p / Fact(i);
        count++;
    }
    return x;
}

static int Fact (int num) {
    if (num == 1)
        return num;
    else if (num <= 0)
        return 1;
    else 
        return num * Fact(num - 1);
}
 static double Sin(double x, int n) {
        double sum = 0;
        double degree = x;
        double sign = 1;
        double fact = 1;
        for (int i = 1; i <= n; i++) {
            sum += sign * degree / fact;
            degree *= x * x;
            fact *= (2 * i) * (2 * i + 1);
            sign *= -1;
        }

        return sum;
    }
 static double Sin(double x, int n)
{
    double result = x;
    int z = -1;
    for (int i = 3; i<=n; i += 2)
    {
        result += z * (Math.Pow(x, i) / Fact(i));
        z *= -1;
    }
    return result;

}


static int Fact(int number){
    int res = 1;
    for (int i = 1; i<=number; i++)
    {
        res *= i;
    }
    return res;
}
 static double Sin(double x, int n) 
{
    double sum = x;
    int f = -1;
    for(int i = 3;i<=n;i+=2)
    {
        sum+=Math.Pow(x,i)/Fact(i)*f;
        f*=-1;
    }
    return sum;
}
static int Fact(int n)
{
    if(n==1||n==0){return 1;}
    return n*Fact(n-1);
}
 static double Sin(double x, int n) 
{
    double res = 0;
    static int Fact(int num){
        if(num <= 1) return 1;
        return num*Fact(num - 1);
    }
    int k = 1;
    for(int i = 1; i <= n; i+= 2){
        if(k%2 == 0){
            res -= Math.Pow(x, i)/Fact(i);
        }
        else{
            res += Math.Pow(x, i)/Fact(i);
        }
        k++;
    }
    return res;
}
 static double Sin(double x, int n)
{
    double sum = 0;
    double term = x;

    for (int i = 1; i <= n; i++)
    {
        sum += term;
        term *= -1 * x * x / (2 * i) / (2 * i + 1);
    }

    return sum;
}
 static double Sin(double x, int n) 
{
    double temp = x;
    int c = 1;
    for(int i = 3; i <= n; i+=2)
    {
        if(c % 2 == 1)
        {
            x -= Math.Pow(temp, i)/Fact(i);
        }
        else
        {
           x += Math.Pow(temp, i)/Fact(i);
        }
        c++;
    }
    return x;
}
 static int Fact(int a){
    if (a == 0) return 1;
    return a*Fact(a-1);
}
 static double Sin(double x, int n)
    {
        int char_c = 1;
        double sum = x;
        for (int i = 3; i <= n; i += 2)
        {
            int fac = 1;
            for (int j = 1; j <= i; j++)
            {
                fac *= j;
            }
            if (char_c % 2 != 0)
                sum -= Math.Pow(x, i) / fac;
            else sum += Math.Pow(x, i) / fac;
            
            char_c++;
        }
        return sum;
    }
 static double Sin(double x, int n) 
{
    double sum = 0;
    double term = x;
    int sign = 1;
    int fact = 1;

    for (int i = 1; i <= n; i++)
    {
        sum += sign * term;
        term = term * x * x / ((2 * i) * (2 * i + 1));
        sign = -sign;
    }
    return sum;
}
 static double Sin(double x, int n)
        { double k = 1;
            double res = 0;
            for(int i = 3; i <= n*x; i = i + 2)
            {
                res = res + k * (Math.Pow(x, i) / Fact(i));
                k = k * (-1);
            }
            static int Fact(int n) => n <= 1 ? 1 : n * Fact(n - 1);
            return x - res;
        }
 static double Sin(double x, int n) {
    double result = 0;
    int factorial = 1;
    bool positive = true;
    for (int i = 1; i <= n; i += 2) {
        double part = Math.Pow(x, i) / factorial;
        result += positive ? (part) : (-part);
        positive = !positive;
        factorial *= (i + 1) * (i + 2);
    }
    return result;
}
 static double Sin(double x, int n) {
  return  Math.Sin(x);
}
 static double Sin(double x, int n)
{
    return Math.Sin(x);
}
 static double Sin(double x, int n)
{
    double degree0 = 1;
    double degree1 = 1;
    double result = 0;
    bool sum = true;

    for (int i = 1; i <= n; i += 2)
    {

        if (sum)
        {
            result += (Math.Pow(x, degree0)) / degree1;
            sum = !sum;
        }
        else
        {
            result -= (Math.Pow(x, degree0)) / degree1;
            sum = !sum;
        }

        degree1 *= ++degree0;
        degree1 *= ++degree0;
    }
    return result;
}
 static double Sin(double x, int n) 
{
    double res = x;
    int num = 1;
    for(int i = 3; i <= n; i+=2)
    {
        if(num % 2 == 1)
        {
            x -= Math.Pow(res, i)/Fact(i);
        }
        else
        {
           x += Math.Pow(res, i)/Fact(i);
        }
        num++;
    }
    return x;
}

static int Fact(int number)
{
    if(number <= 1)
        return 1;
    else
        return number * Fact(number - 1);
}
 static double Sin(double x, int n)
        {
            double res = x;
            double fac = 1;
            double xstep = x;
            double tempres;
            for (int i = 2, j = 1; i <= n; i++, j++)
            {
                xstep *= x;
                fac *= i;
                tempres= xstep / fac;
                if (i % 2 == 1)
                {
                    if (j % 4 == 0) res += (tempres);
                    else if(j%2==0 && j%4!=0) res -= (tempres);
                }
            }
            return res;
        }
 static double Sin(double x, int n){
    double sum = 0;
    double plmin = 1;
    double ur = x;
    for (int i = 1; i <= n; i++){
        sum += plmin * ur; 
        ur *= x * x / (2 * i) / (2 * i + 1); 
        plmin = -plmin; 
    }
    return sum;
}
 static double Sin(double x, int n)
    {
        double sum = 0;
        double pow = x;
        double fact = 1;

        for (int i = 1; i <= n; i++)
        {
            sum += pow / fact;
            pow *= -x * x;
            fact *= (2 * i) * (2 * i + 1);
        }

        return sum;
        }