回形矩阵-简单思路

#include
using namespace std;
int a[1005][1005];
int main()
{
    int n,m,x,y;
    cin>>n>>m;
    cin>>x>>y;
    int num=1; 
    int u=0,d=n-1,l=0,r=m-1;
    while(num<=n*m)
    {
        for(int i=l;i<=r;i++)//默认向右走 
        {
            a[u][i]=num++;
        }
        u++;//本行结束 
        for(int i=u;i<=d;i++)//然后向下走 
        {
            a[i][r]=num++;
        
        }
        r--;
        for(int i=r;i>=l;i--)//然后向左走 
        {
            a[d][i]=num++;
            
        }
        d--;//填满第d行后行号-1 
        for(int i=d;i>=u;i--)//然后向上走 
        {
            a[i][l]=num++;
        } 
        l++;//填满第i列后列号+1 
    }
    cout<

你可能感兴趣的:(矩阵,算法,c++)