Задача.
Даны натуральное число [latex]n[/latex], действительное число [latex]x[/latex]. Вычислить: [latex]\sum_{i=1}^{n}{\frac{x+cos(ix)}{2^{i}}}[/latex]
Тесты.
n | x | sum | Комментарий |
5 | 2 | 1.65 | Пройден |
10 | 10 | 9.67 | Пройден |
5 | 0 | 0.97 | Пройден |
Все тесты проверены на wolframalpha.
Код.
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <stdio.h> #include <math.h> using namespace std; int main() { int n; //описание переменных double x; scanf("%d %lf",&n,&x); //ввод условий double sum=0; double degree=1; for(int i=1;i<=n;i++) { degree=degree*2; //вычисление степеней 2 sum=sum+(x+cos(i*x))/degree; //вычисление суммы } printf("%4.2lf\n",sum); return 0; } |
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { int n; //описание переменных double x; Scanner sc = new Scanner(System.in); n = sc.nextInt(); //ввод условий x = sc.nextDouble(); double sum=0; double degree=1; for(int i=1;i<=n;i++) { degree=degree*2; //вычисление степеней 2 sum=sum+(x+Math.cos(i*x))/degree; //вычисление суммы } System.out.printf("%4.2f\n",sum); } } |
Для решения данной задачи воспользуемся циклом for, также для упрощения вычислений (не считать [latex]2^{i}[/latex] каждый раз заново) введем переменную degree.
Для выполнения программы и проверки тестов можно воспользоваться следующей ссылкой(C++) или другой(Java).
Зачтено.
Засчитана Java версия.