Для заданного натурального числа n и действительного числа x найдите значение суммы
sin x + sin2x + … + sinnx
Вход. Два числа: натуральное число n (n ≤ 1000) и действительное число x (∣x∣ ≤ 1000).
Выход. Выведите значение указанной суммы,
округлённое до 6 десятичных знаков.
Пример
входа |
Пример
выхода |
3 1 |
2.145368 |
циклы
Указанную сумму вычислим с использованием цикла.
На i-ой итерации в переменной t будем хранить значение sinix. На i-ой итерации к текущему значению
результата res прибавим текущее слагаемое t = sinix.
Реализация алгоритма
Читаем входные данные.
scanf("%d %lf", &n, &x);
Вычисляем значение суммы при помощи цикла.
res = 0; t = 1;
for (i = 0; i < n; i++)
{
На i-ой итерации необходимо умножить t на sin(x),
а затем прибавить текущее слагаемое t = sinix
к результату res.
t = t *
sin(x);
res = res + t;
}
Выводим ответ.
printf("%lf\n", res);
Python реализация
import math
Читаем входные данные.
n, x = input().split()
n = int(n)
x = float(x)
Вычисляем значение суммы при помощи цикла.
res, t = 0, 1
for i in range(n):
На i-ой итерации необходимо умножить t на sin(x),
а затем прибавить текущее слагаемое t = sinix
к результату res.
t *= math.sin(x)
res += t
Выводим ответ.
print(res)