Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #include <stdbool.h>
- long fact(int n)
- {
- if (n == 0)
- return 1;
- else
- return(n * fact(n - 1));
- }
- long double check(long double x)
- {
- return sinl(x) / x;
- }
- int main()
- {
- long double x;
- printf("x> ");
- scanf("%Lf", &x);
- //Проверяем принадлежность x промежутку из условия
- if (x < -M_PI || x > M_PI)
- {
- printf("x must be on [-Pi, +Pi], aborted.");
- return 0;
- }
- long double epsilon = 1e-5; //Точность нахождения последовательности
- int it = 2; //Счётчик итераций
- long double S = 1; //Сумма бесконечной последовательности
- long double diffValue; //Значение которое нужно прибавить/отнять в следующей итерации
- short isNegative = true; //Определяет знак для итерации
- do
- {
- diffValue = powl(x, it) / (long double)fact(it + 1);
- if (isNegative)
- S -= diffValue;
- else
- S += diffValue;
- it += 2; //Увеличиваем итерацию
- isNegative = !isNegative; //Меняем знак операции для следующей итерации
- }while(diffValue > epsilon);
- printf("Sum: %Lf \n", S);
- printf("Sum check: %Lf", check(x));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment