Задача
Даны натуральные числа [latex]m, n[/latex], действительные числа [latex] a_1, a_2, …, a_{mn}[/latex]. Вычислить [latex]a_1 a_2 … a_m + a_{m+1} a_{m+2} … a_{2m} + a_{(n – 1) m + 1} a_{(n – 1) m + 2} … a_{nm}[/latex].
Входные данные:
[latex]m, n[/latex] — натуральные числа.
В следующей строке содержится [latex]m \cdot n[/latex] действительных чисел.
Выходные данные
Действительное число, значение требуемого выражения.
Тесты:
№
|
Входные данные | Выходные данные |
1
|
3 3 1.1342 2.82113 3.5431 4.541 5.081 6.761 7.35781 8.456451 9.6461 10.9321 |
767.5218903911781 |
2
|
5 4 23.2312 -13.016 0.78 1.0 73.48992 -3441.32150 39.94 87.04 0.1 -0.02 94.094 23.0001 0.005 -2.0 -1.0 0.004 -1.01 42.0 0.454 1.5 |
6593.637250058031 |
3
|
3 2 1.1 2.2 3.3 4.4 5.5 6.6 |
327.426 |
Код на языке C++:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <iostream> #include <iomanip> using namespace std; int main() { int m, n; cin >> m >> n; double a[m*n]; double sum1 = 1, sum2 = 1, sum3 = 1; double sum = 0; for (int i = 1; i <= m*n; i++) { cin >> a[i]; if (i <= m) { sum1 *= a[i]; } if ((i > m) && (i <= 2*m)) { sum2 *= a[i]; } if ((i > (n - 1)*m) && (i <= n*m)) { sum3 *= a[i]; } } cout << setprecision(15) << sum1 + sum2 + sum3; 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 24 25 26 27 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main(String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); int m, n; m = in .nextInt(); n = in .nextInt(); double[] a = new double[m * n + 1]; double sum1 = 1, sum2 = 1, sum3 = 1; for (int i = 1; i <= m * n; i++) { a[i] = in .nextDouble(); if (i <= m) { sum1 *= a[i]; } if ((i > m) && (i <= 2 * m)) { sum2 *= a[i]; } if ((i > (n - 1) * m) && (i <= n * m)) { sum3 *= a[i]; } } System.out.println(sum1 + sum2 + sum3); } } |
Решение задачи:
Заведём массив для хранения чисел. Пользуясь циклом [latex]for[/latex] от [latex]1[/latex] до [latex]m \cdot n[/latex], по мере заполнения массива будем считать слагаемые нашего выражения. Для этого воспользуемся оператором [latex] if [/latex], проверяя индексы элементов массива.
Код программы на C++: Ideone
Код программы на Java: Ideone
Условия задачи(стр.134): 321