크기가 d인 행렬(d*d)의 곱 a*b를 구하는 코드
실행 코드
#include <iostream>
#pragma warning(disable:4996)
using namespace std;
int d;
struct st
{
int m[55][55] = {};
st operator*(st a) const
{
st ret;
for (int i = 0; i < d; i++)
for (int j = 0; j < d; j++)
for (int k = 0; k < d; k++)
ret.m[i][j] = (ret.m[i][j] + m[i][k] * a.m[k][j]);
return ret;
}
}a,b,c;
int main()
{
d=3;
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
a.m[i][j]=i,b.m[i][j]=i+j;
c=a*b;
printf(">>> a행렬\n");
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
printf("%2d ",a.m[i][j]);
printf("\n");
}
printf(">>> b행렬\n");
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
printf("%2d ",b.m[i][j]);
printf("\n");
}
printf(">>> c행렬\n");
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
printf("%2d ",c.m[i][j]);
printf("\n");
}
return 0;
}실행 결과
'IT > 알고리즘 및 자료구조' 카테고리의 다른 글
| [알고리즘 정리] 이분 탐색 (0) | 2018.09.14 |
|---|---|
| [알고리즘 정리] 그라함 알고리즘(Graham’s scan) 알고리즘 (0) | 2018.08.26 |
| [알고리즘 정리] 최장 증가 수열(LIS,Largest Increasing Sequence) 알고리즘 (2) | 2018.07.16 |
| [알고리즘 정리] 최소 신장 트리(MST, Minumum Spanning Tree) 알고리즘(프림 알고리즘) (0) | 2018.06.03 |
| [알고리즘] 비트를 이용한 시프트, 논리 연산 ( <<, >>, &, |) (0) | 2018.06.02 |