알고리즘 훈련 매트릭스 곱셈

문제 설명
두 개의 행렬 을 입력 하 십시오. 각각 m * s, s * n 크기 입 니 다.두 행렬 을 곱 한 결 과 를 출력 하 다.
입력 형식
첫 번 째 줄, 빈 칸 으로 구 분 된 세 개의 정수 m, s, n (모두 200 을 초과 하지 않 음).
다음 m 줄 은 줄 마다 s 개의 빈 칸 으로 구 분 된 정 수 를 나타 내 고 행렬 A (i, j) 를 나타 낸다.
다음 s 줄, 각 줄 n 개의 빈 칸 으로 구 분 된 정 수 는 행렬 B (i, j) 를 나타 낸다.
출력 형식
m 줄, 줄 마다 n 개의 빈 칸 으로 구 분 된 정수, 곱 한 행렬 C (i, j) 의 값 을 출력 합 니 다.
샘플 입력
2 3 2
1 0 -1
1 1 -3
0 3
1 2
3 1
샘플 출력
-3 2
-8 2
제시 하 다.
행렬 C 는 m 행 n 열 이 어야 한다. 그 중에서 C (i, j) 는 행렬 A 제 i 행 벡터 와 행렬 B 제 j 열 벡터 의 내 적 이다.
예 를 들 어 샘플 에서 C (1, 1) = (1, 0, - 1) * (0, 1, 3) = 1 * 0 + 0 * 1 + (- 1) * 3 = - 3
#include
#include
#include
using namespace std;

int main()
{
	int m,s,n;
	cin>>m>>s>>n;
	long long int sum;
	int a[202][202],b[202][202],c[202][202];
	for(int i = 0;i < m;i++)
	{
		for(int j = 0;j < s;j++)
		{
			cin>>a[i][j];
		}
	}
	for(int i = 0;i < s;i++)
	{
		for(int j = 0;j < n;j++)
		{
			cin>>b[i][j];
		}
	}
	for(int i = 0;i < m;i++)
	{
		for(int j = 0;j < n;j++)
		{
			sum = 0;
			for(int k = 0;k < s;k++)
			{
				sum += a[i][k] * b[k][j];
			}
			c[i][j] = sum;
		}
	}
	for(int i = 0;i < m;i++)
	{
		for(int j = 0;j < n;j++)
		{
			cout<

좋은 웹페이지 즐겨찾기