Задача: Даны квадратные матрицы [latex]A[/latex], [latex]B[/latex] и [latex]C[/latex] порядка [latex]n[/latex]. Получить матрицу [latex](A+B)C.[/latex]
Тесты:
n | A | B | C | Output |
3 | 1 2 3 4 5 6 7 8 9 |
0 1 0 0 0 0 0 0 0 |
1 0 0 0 1 0 0 0 1 |
1 3 3 4 5 6 7 8 9 |
2 | 4 6 12 7 |
3 2 1 1 |
7 3 2 8 |
65 85 107 103 |
3 | 3 4 1 1 2 1 5 6 7 |
1 3 1 2 4 5 6 5 1 |
1 1 0 5 8 1 2 3 2 |
43 66 11 45 69 18 82 123 27 |
Код:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone{ public static void main (String[] args) throws java.lang.Exception{ int n,i=0,j=0,k,p; Scanner x = new Scanner(System.in); n = x.nextInt(); int [][] a; a = new int[n][n]; int [][] b; b = new int[n][n]; int [][] c; c = new int[n][n]; int [][] d; d = new int[n][n]; d[i][j]=0; for( i=0 ; i<n ; i++ ){ for( j=0 ; j<n ; j++ ){ a[i][j]=x.nextInt(); } } for( i=0 ; i<n ; i++ ){ for( j=0 ; j<n ; j++ ){ b[i][j]=x.nextInt(); a[i][j] += b[i][j]; } } for( i=0 ; i<n ; i++ ){ for( j=0 ; j<n ; j++ ){ c[i][j]=x.nextInt(); } } for( i=0 ; i<n ; i++ ){ for( j=0 ; j<n ; j++ ){ for( k=0 ; k<n ; k++ ){ d[i][j] += a[i][k] * c[k][j]; } } } for ( k = 0; k < n; k++) { for ( p = 0; p < n; p++) { System.out.print(d[k][p] + "\t"); } System.out.println(); } } } |
Решение:
В первом цикле читаем матрицу [latex]A[/latex]. Во втором цикле читаем матрицу [latex]B[/latex] и сразу прибавляем ее к матрице [latex]A[/latex], получаем сумму матриц. В третьем цикле умножаем сумму матриц [latex]A[/latex] и [latex]B[/latex] на матрицу [latex]C[/latex] и выводим результат.
Код на Ideone
Пожалуйста, оформите обозначения одинаково по всему тексту. Должно быть [latex]A, B, C, n,[/latex] а не A, B, C, n. У Вас в разных местах используются разные обозначения.
Исправил
Засчитываю, но есть замечания.
Вы вводите матрицу и в этом же цикле складываете матрицы. Так короче. Вы правы. Только не нужно так делать в реальной жизни. Программы со временем меняются и такой код (со странными побочными эффектами и без четкой структуры) сложно поддерживать.