XDOJ 螺旋矩阵

xdoj,XDOJ 螺旋矩阵

简单的循环思路

int main()
{
    int j[101][101],p,o,m,u,r,t,y;
    scanf("%d",&n);
    p=1;//行数初值1
    o=1;//循环数字的值 
    t=0;//行数初值0 
    u=0;//列数初值 
    y=n;
    loop:
    for(int i=t;i<p;i++)//从左到右 
    {
        for(int k=u;k<n;k++)
        {
            j[i][k]=o;
            o++;
        }
    }
    for(int i=p;i<n;i++)//从上到下 
    {
        for(int k=n-1;;)
        {
            j[i][k]=o;
            o++;
            break; 
        }
    }
    for(int i=n-1;i<n;i++)//从右到左 
    {
        for(int k=n-2;k>=u;k--)
        {
            j[i][k]=o;
            o++;
        }
    }
    for(int i=n-2;i>t;i--)//从下到上 
    {
        for(int k=u;;)
        {
            j[i][k]=o;
            o++;
            while(i==t+1)
            {
                u++;
                t++;
                n--;
                p++;
                if(n<y/2)
                {
                    break;
                }
                goto loop;
            }
            break;
        }
    }
    
    for(int i=0;i<y;i++)
    {
        for(int k=0;k<y;k++)
        {
            printf("%3d",j[i][k]);
        }
        printf("\n");
    }
    return 0;
}
上一篇:XDOJ快速排序


下一篇:查找-XDOJ