螺旋矩阵

随便写的 还有待改进
好像可以用递归,这里相对暴力点
螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环。
可以先写外层元素,然后里面的数按规律增加,循环打印直到最后
给出一个 3

可以给出以下矩阵:

[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]

#include 
#include 
#include 
using namespace std;
 
 
void generate(int n){
   int a[n+2][n+2];
    for(int i=0;i0){
          while(ope==0&&a[indexi][indexj]==0){
                a[indexi][indexj]=++mm;
                printf("%d\n",a[indexi][indexj]);
                indexj++;
                count--;
                
           }
           ope++;
           indexj--;
           indexi++;
        
    
        while(ope==1&&a[indexi][indexj]==0){
            a[indexi][indexj]=++mm;
            indexi++;
            count--;
        }   
        ope++;
        indexi--;
        indexj--;
        while(ope==2&&a[indexi][indexj]==0){
            a[indexi][indexj]=++mm;
            indexj--;
            count--;
        }
        ope++;
        indexj++;
        indexi--;
        while(ope==3&&a[indexi][indexj]!=-1&&a[indexi][indexj]==0){
            a[indexi][indexj]=++mm;
            indexi--;
            count--;
        }
        indexi++;
        indexj++;
        ope=0;
    }
  
    for(int i=1;i

你可能感兴趣的:(螺旋矩阵)