这里将不讨论有哪些别的方法解决可以解决这个问题,先看一下递归解决这个问题会如何:
现在将规模扩大到5个矩阵:a b c d e如果不考虑效率,依次做以下五步计算:
1. 将ab相乘,递归计算axb c d e相乘需要的最小乘法次数min1;
2. 将bc相乘,递归计算a bxc d e相乘需要的最小乘法次数min2;
3. 将cd相乘,递归计算a b cxd e相乘需要的最小乘法次数min3;
4. 将de相乘,递归计算a b c dxe相乘需要的最小乘法次数min4;
5. min1 min2 min3 min4中最小的值,即为答案。
[QUOTE=jackandkx;1389599]int calc(int*p,int n) //p是指向矩阵参数的指针,n是矩阵的个数+1
{
int temp[n-1];
int result[n-2];
int i,j;
if(n==3)
return (*p)*(*(p+1))*(*(...[/QUOTE]
这就是按照提问中所说的过程实现的,输入数据的规模稍大就不行了。