题解 | #回型矩阵#

回型矩阵

https://www.nowcoder.com/practice/36d5dfddc22c4f5b88a5b2a9de7db343

#include <stdio.h>
int main()
{
    int num=1,i=0,j=0,k,left=-1,right,up=0,down,n,flag1=0,flag2=1;
    int a[19][19]={0};
    scanf("%d", &n); 
    down=n-1,right=n-1;
    for(k=0;k<n*n;k++)
    {
        a[i][j]=num++;  
        if(i==up&&j==right)
        {
            flag1=1,flag2=0;
            if (up==down)
            flag1=0,flag2=-1;            
        }
        else if(i==down&&j==right)
        flag1=0,flag2=-1;
        else if(i==up&&j==left)
        flag1=0,flag2=1;
        else if(i==down&&j==left)
        flag1=-1,flag2=0; 
        i+=flag1,j+=flag2; 
        if(i==up&&j==right)
        left++;
        else if(i==down&&j==right)
        up++;
        else if(i==up&&j==left)
        down--;
        else if(i==down&&j==left)
        right--; 
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

漂亮的海豚在炒股:把西电加粗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务