文章

18

粉丝

0

获赞

100

访问

3.2k

头像
旋转方阵 题解:

思路:按照左列 下行 右列 上行的循序依次赋值,这里我们4个4个赋值,就刚好不重叠的铺满一围(其他n时候同理最外围每次赋值n-1).

int n = 0;//输入的整数n
int count=1;//赋值的数,从1开始++到n*n
int a[21][21]={0};//二维数组来模拟矩阵
scanf("%d",&n);
    for(int i=0;i<(n+1)/2;i++)//总的层数
    {
        if(count==n*n)//n如果是奇数的时候最中间的数一定是n*n,所以直接判断如果赋值的数是n*n直接赋值给a[i][i]。如果是偶数就不会触发,因为偶数的时候上行赋值完结束了,不会                                        再进入循环,奇数的循环次数比偶数多一次
        {
            a[i][i]=count;
            break;
        }

        for(int j=i;j<n-i-1;j++)//左列赋值
        {
            a[j][i]=count++;
       &...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发