本文介绍了如何通过旋转90度一个的N×N矩阵?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何通过90度旋转的N×N矩阵。我想这是就地?
解决方案
的for(int i = 0;我n种/ 2;我++)
为(诠释J = 0; J&≤(N + 1)/ 2; J ++)
cyclic_roll(M [] [j]时,M [N-1-j]的[I]中,M [N-1-i的] [n-1个-j]时,米[j]的[n-1个-1]) ;
无效cyclic_roll(INT和放大器;一,INT和b,INT和C,INT和D)
{
INT TEMP =一个;
A = B;
B = C;
C = D;
D =温度;
}
注意我没有测试过这一点,只是compoosed现在在现场。干嘛用的任何事情之前,请测试。
How to rotate a N x N matrix by 90 degrees. I want it to be inplace?
解决方案
for(int i=0; i<n/2; i++)
for(int j=0; j<(n+1)/2; j++)
cyclic_roll(m[i][j], m[n-1-j][i], m[n-1-i][n-1-j], m[j][n-1-i]);
void cyclic_roll(int &a, int &b, int &c, int &d)
{
int temp = a;
a = b;
b = c;
c = d;
d = temp;
}
Note I haven't tested this, just compoosed now on the spot. Please test before doing anything with it.
这篇关于如何通过旋转90度一个的N×N矩阵?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!