由外向内顺时针&逆时针旋转矩阵
2013-05-28 21:09
330 查看
代码如下:
输出结果:
#include <iostream> using namespace ::std; #define N 10 int a ; void InitSeq( int n ) { int value = 1; int i, j; for( i = 0; i < n/2; i++ ) // n/2是圈数 { for( j = i; j < n - i; j++ ) //向右增长 { a[j][i] = value++; } for( j = i + 1; j < n - i; j++ ) //向下增长 { a[n-1-i][j] = value++; } for( j = n - 2 - i; j > i; j-- ) //向左增长 { a[j][n-1-i] = value++; } for( j = n - 1 - i; j > i; j-- ) //向上增长 { a[i][j] = value++; } //n为奇数时,最中间数的值 if( n % 2 == 1 ) a[n/2][n/2] = value; } } void printSeq( int n ) { cout << "顺时针:" << endl; for( int i = 0; i < n; i++ ) { for( int j = 0; j < n; j++ ) { printf( "%5d", a[j][i] ); } printf("\n"); } cout << "逆时针:" << endl; for( int i = 0; i < n; i++ ) { for( int j = 0; j < n; j++ ) { printf( "%5d", a[i][j] ); } printf("\n"); } } int main() { int n; cout << "请输入旋转矩阵边的大小:"; cin >> n; InitSeq(n); printSeq(n); system( "PAUSE"); return 0; }
输出结果:
请输入旋转矩阵边的大小:7 顺时针: 1 2 3 4 5 6 7 24 25 26 27 28 29 8 23 40 41 42 43 30 9 22 39 48 49 44 31 10 21 38 47 46 45 32 11 20 37 36 35 34 33 12 19 18 17 16 15 14 13 逆时针: 1 24 23 22 21 20 19 2 25 40 39 38 37 18 3 26 41 48 47 36 17 4 27 42 49 46 35 16 5 28 43 44 45 34 15 6 29 30 31 32 33 14 7 8 9 10 11 12 13 请按任意键继续. . .
相关文章推荐
- nowcoder-顺时针打印矩阵-模拟魔方逆时针旋转
- Arrays_Strings 90度顺时针逆时针旋转方形矩阵 @CareerCup
- 由内向外顺时针旋转队列&逆时针旋转队列
- 顺时针旋转矩阵90°的几种方法
- 迅雷笔试题---矩阵逆时针旋转90°
- 矩阵顺时针旋转90°、180°、270°
- 关于Touch的顺时针(CW),逆时针(CCW)旋转
- 面试题6 将一个n*n图像矩阵顺时针旋转90°
- 面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,原新数组以4行4列的方式输出
- [算法] 二维数组(长宽相等)逆时针旋转90°算法
- 从弧长的计算到逆时针与顺时针旋转的定义 (二维空间)
- Spiral Matrix 矩阵的逆时针、顺时针的遍历
- 牛客网——顺时针旋转矩阵
- 螺旋矩阵--由外向内旋转输出
- openCv 图像顺时针、逆时针旋转
- 【数据结构机试复习5】 顺时针打印矩阵 & 24点
- 看看这张图片旋转是顺时针还是逆时针?
- 人人都来写算法 之 矩阵顺时针旋转90度,空间效率O(1),时间效率O(n*n)
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
- 剑指offer面试题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字