#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> // Подключение функций ввода-вывода (printf, scanf)
#include <stdlib.h> // Подключение системных функций (system)
#include <locale.h> // Подключение локализации русского языка
#include <math.h> // Подключение математических функций (pow)
int main()
{
setlocale(LC_ALL, "Russian"); // Установка русской локали в консоли
double x; // Переменная x, вводимая пользователем
int n; // Количество слагаемых n
double S = 0.0; // Накопитель итоговой суммы
printf("Введите значение x: "); // Приглашение ко вводу x
scanf("%lf", &x); // Считывание вещественного числа x
printf("Введите значение n: "); // Приглашение ко вводу n
scanf("%d", &n); // Считывание целого числа n
// Внешний цикл по параметру k от 1 до n
for (int k = 1; k <= n; k++)
{
// Проверка деления на ноль при k = 2
if (k == 2)
{
printf("Ошибка: деление на ноль при k = 2!\n"); // Сообщение об особой точке
continue; // Пропуск шага с делением на 0
}
double P = 1.0; // Инициализация накопителя произведения для текущего k
// Внутренний цикл по параметру m от 1 до k + 2
for (int m = 1; m <= k + 2; m++)
{
// Проверка деления на ноль при m = 4
if (m == 4)
{
printf("Ошибка: деление на ноль при m = 4!\n"); // Сообщение об особой точке
P = 0.0; // Сброс произведения
break; // Прерывание цикла произведения
}
double term = (pow(m, 3) - 8.0) / (m - 4.0); // Вычисление очередного сомножителя
P *= term; // Накопление произведения
}
double pwr = 3.0 * k + 1.0; // Показатель степени 3k + 1
double coeff = pow(-3.0, pwr) / (2.0 * (k - 2.0) * pow(x, pwr)); // Вычисление множителя перед произведением
S += coeff * P; // Добавление вычисленного члена к сумме S
}
printf("\nИтоговая сумма S = %.4lf\n", S); // Вывод результата вычисления суммы
system("pause"); // Остановка консоли перед закрытием программы
return 0; // Завершение работы программы
}