计算例程,很简单.递归地完成,就可以了.接口部分可能略复杂,但足够简便.是很好的实现方式.
const int INFINITY = ~(1 << 31) ;
int _tmain(int argc, _TCHAR* argv[])
{
int array[6] = {3, 5, 4, 2, 6, 3} ;
int array1st[15] = {3, 3, 1, 5, 4, 2, 4, 5, 6, 4, 4, 7, 4, 6, 8} ;
int array2nd[20] = {1, 3, 5, 9, 7, 6, 5, 4, 2, 1, 4, 6, 7, 8, 2, 3, 9, 4, 5, 1} ;
int array3rd[8] = {5, 4, 3, 2, 1, 7, 6, 8} ;
int array4th[12] = {5, 7, 9, 1, 2, 4, 3, 5, 6, 8, 9, 10} ;
int array5th[18] = {8, 7, 6, 1, 2, 3, 4, 5, 6, 8, 7, 9, 4, 1, 2, 3, 6, 4} ;
Matrix<int> mArray[5] = {
Matrix<int> (array1st, 15, 3, 5),
Matrix<int> (array2nd, 20, 5, 4),
Matrix<int> (array3rd, 8, 4, 2),
Matrix<int> (array4th, 12, 2, 6),
Matrix<int> (array5th, 18, 6, 3),
} ;
Matrix<int> result ;
result.OptimalMultiplication (mArray, 5) ;
result.Show () ;
std ::cin.get () ;
return 0 ;
}