→ MOONRAKER:記憶體使用O(0)的演算法,這老師太狠了!!! 11/11 14:35
※ 引述《moon2519 (~輝~)》之銘言:
: #include <cstdlib>
: #include <iostream>
: using namespace std;
: int main(int argc, char *argv[])
: {
: int matA[3][3] = { {1,0,3},
: {0,1,4},
: {5,0,1} };
: int matB[3][3] = { {1,0,0},
: {0,1,0},
: {0,0,1} };
: for(int i=1; i<=3 ;i++){ //執行for迴圈用於控制i列
: for(int j=1; j<=3 ;j++){ //執行for迴圈用於控制j行
: matA[i][j]=matA[i][j]*matB[j][i]; //矩陣相乘
: cout<<matA[i][j]; //印出值
: }
: cout<<endl;
: }
: system("PAUSE");
: return EXIT_SUCCESS;
: }
如果可以開一個 row 的記憶體的話
可以這樣做:
for (size_t r = 0; r < 3; ++r) {
int row[3] = {0};
for (size_t c = 0; c < 3; ++c)
for (size_t k = 0; k < 3; ++k)
row[c] += matA[r][k] * matB[k][c];
for (size_t c = 0; c < 3; ++c)
matA[r][c] = row[c];
}
不過如果連那個 row 都不能開的話
我就不知道怎麼做了 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.49