Задача: Даны квадратные матрицы A, B и C порядка n. Получить матрицу (A+B)C.
Тесты:
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(); } } } |
Решение:
В первом цикле читаем матрицу A. Во втором цикле читаем матрицу B и сразу прибавляем ее к матрице A, получаем сумму матриц. В третьем цикле умножаем сумму матриц A и B на матрицу C и выводим результат.
Код на Ideone
Пожалуйста, оформите обозначения одинаково по всему тексту. Должно быть A,B,C,n, а не A, B, C, n. У Вас в разных местах используются разные обозначения.
Исправил
Засчитываю, но есть замечания.
Вы вводите матрицу и в этом же цикле складываете матрицы. Так короче. Вы правы. Только не нужно так делать в реальной жизни. Программы со временем меняются и такой код (со странными побочными эффектами и без четкой структуры) сложно поддерживать.