欢迎光临散文网 会员登陆 & 注册

一本通 2045 蛇形填数

2023-06-06 16:18 作者:whflclz  | 我要投稿


示例图

#include<iostream>

using namespace std;

int a[21][21]={};

int main()

{

         int n;

         cin>>n;

         int x=1,y=n,cnt=1;

         a[x][y]=cnt;      //最右上角 填写数字 1

while (cnt<n*n)

{

//从上到下  x +1  y 不变,测试下一个元素是否为 0  且 x+1<=n

         while( x+1<=n && a[x+1][y]==0 ){

                 x++;

                 cnt++;

                 a[x][y]=cnt;        

            }

//从右到左   y-1  x 不变

         while( y-1>=1 && a[x][y-1]==0 ){

                  y--;

                 cnt++;

                 a[x][y]=cnt;                

           }

       //从下到上  x -1  y 不变 

         while( x-1>=1 && a[x-1][y]==0 ){        

                 x--;

                 cnt++;

                 a[x][y]=cnt;                

         }

        //从左到右  y +1  x 不变

         while( y+1<=n && a[x][y+1]==0 ){

                 y++;

                 cnt++;

                 a[x][y]=cnt;        

         }

}


for (int i=1;i<=n;i++)

{

         for (int j=1;j<=n;j++)          cout<<a[i][j]<<" ";

         cout<<endl;

}

return 0;

}


一本通 2045 蛇形填数的评论 (共 条)

分享到微博请遵守国家法律