Даны натуральное число [latex]n[/latex], действительные числа [latex]a_{1}, a_{2}, \ldots a_{n}[/latex].
Вычислить: [latex]a_{1},-a_{1}a_{2},a_{1}a_{2}a_{3}, \ldots (-1)^{n+1}a_{1}a_{2} \ldots a_{n}[/latex].
Решение. Вводим переменную [latex]n[/latex], переменную a(куда будем считывать наши числа), а так же [latex]f[/latex]-произведение введенных чисел. Каждый раз в цикле уже введенные числа умножаются на следующее число взятое с противоположным знаком, а изначально [latex]»f»[/latex] равна [latex]»-1″[/latex] так как «Очередное произведение отличается от предыдущего сомножителем [latex](-a_{i})[/latex]».
Тесты:
[latex]n=3[/latex]
Числа[latex](a_{n})[/latex] | Результат |
1 | 1 |
2 | -2 |
3 | 6 |
Числа[latex](a_{n})[/latex] | Результат |
1.8 | 1.8 |
3.9 | -7.02 |
0.0001 | 0.000702 |
-79 | 0.055458 |
456.98 | -25.3432 |
0.9001 | 22.8114 |
4 | -91.2456 |
Код программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { int n; //Количество вводимых чисел. Scanner sc = new Scanner(System.in); n = sc.nextInt(); double a,f; //а-переменна для считывания чисел, f-произведения введенных чисел, m-результат из f умноженый на -1 в степени n+1. f = -1; for (int k=1; k<=n; ++k) { a = sc.nextDouble(); f *= -a; System.out.print(f); if (k < n) System.out.print(", "); else System.out.print("."); } } } |
Оформите код, пожалуйста.
Исправил
В методе main открывающую скобку забыл исправить 😀