Условие задачи
Найти сумму сходящегося ряда $latex \sum\limits_{i=1}^n \frac{\sin ix}{2^i}.$
Тесты
Входные данные: $latex n$ — количество шагов, $latex x$ — значение $latex x.$
Выходные данные: сумма ряда $latex \sum\limits_{i=1}^n \frac{\sin ix}{2^i}.$
№ | Входные данные | Выходные данные | Тесты на WolframAlpha |
1 | 10 0.523598 | 0.6511697 | Тест 1 |
2 | 5 1.141592 | 0.5300871 | Тест 2 |
3 | 15 1.570796 | 0.399994 | Тест 3 |
4 | 10 -2.3 | -0.1944212 | Тест 4 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.util.Scanner; public class Main { public static void main (String[] args) { int n, powOf2 = 1; double x, sum = 0; Scanner scanner = new Scanner(System.in); n = scanner.nextInt(); x = scanner.nextDouble(); for (int i = 1; i <= n; i++) { powOf2 *= 2; sum += Math.sin(i*x)/powOf2; } System.out.println(sum); } } |
Код доступен на ideone
Пояснение
В начале программы объявим переменные типа int: n для хранения шагов и powOf2, проинициализированную числом 1, так как в ней будет храниться текущая степень числа 2, полученная путем последовательного умножения значения данной переменной на 2; и переменные типа double: x для хранения значения $latex x$ и sum для хранения суммы, проинициализированную числом 0. Проинициализируем переменные n и x значениями из стандартного потока ввода. Сумма вычисляется в цикле и аккумулируется в переменной sum , используя стандартную функцию вычисления синуса Math.sin() и значение переменной powOf2. Результат работы программы — вывод значения переменной sum.