求斐波那契数列第n项。
矩阵乘法裸题。
关于矩阵乘法某个矩阵只有一行或者一列的循环写法,可以先把三重写出来
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
for(int k=0;k<n;k++)
c[i][j]+=a[i][k]*b[k][j];
如果前面矩阵只有1行,则删去所有i出现的地方
for(int j=0;j<n;j++)
for(int k=0;k<n;k++)
c[j]+=a[k]*b[k][j];
如果后面矩阵只有1列,则删去所有j出现的地方
for(int i=0;i<n;i++)
for(int k=0;k<n;k++)
c[i]+=a[i][k]*b[k];
在宏定义memcpy时犯了一个弱智错误,写习惯了memset
一开始写成了
#define mc(a,b) memcpy(a,b,sizeof(a))
应该是
#define mc(a,b) memcpy(a,b,sizeof(b))
AC代码: