您的位置:首页 > 其它

打印N*N旋转矩阵 的一个解法

2011-04-03 13:33 155 查看
如 输入 4

打印

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

void printNN(int N)
{
if(N <= 0) return;
if(N == 1) return;

int *p = new int[N*N];
int i = 0, j = 0;
int cnt = 1;
int m = N;
while(m>=(N+1)/2)
{
while(j<m)
p[i*N+j++] = cnt++;
j--;
while(++i<m)
p[i*N+j] = cnt++;
i--;
while(--j>=(N-m))
p[i*N+j] = cnt++;
j++;
while(--i>(N-m))
p[i*N+j] = cnt++;
i++;j++;
m--;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%2d ", p[i*N+j]);
printf("/n");
}
delete []p;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐