蛇形填数

来源:互联网 发布:淘宝怎么登陆不了 编辑:程序博客网 时间:2024/05/17 05:02
#include<string>#include<algorithm>#include<cmath>#include<cstring>#include<map>#include<queue>#include<deque>#include<cstdio>#include<iostream>#pragma warning(disable:4996)#define inf 0x3f3f3f3f3f3f3f3f#define ll long longusing namespace std;int ret[1000][1000];int main(){int n;int ii, jj;int i = 0, j =-1;cin >> n;int N = n*n;for (ii = 0; ii < n; ii++){for (jj = 0; jj < n; jj++){ret[ii][jj] = 0;}}int num = 1;int lef = 1;int dow = 2;int up = 3;int righ = 4;int cur = righ;while (num <= N){if (cur == righ){j++;while (j < n&&!ret[i][j]){ret[i][j] = num++;j++;}j--;cur = dow;}else if (cur ==dow){i++;while (i < n&&!ret[i][j]){ret[i][j] = num++;i++;}cur = lef;i--;}else if (cur == lef){j--;while (j >=0&&!ret[i][j]){ret[i][j] = num++;j--;}cur = up;j++;}else if (cur == up){i--;while (i>=0&&!ret[i][j]){ret[i][j] = num++;i--;}cur = righ;i++;}}for (ii = 0; ii < n; ii++){for (jj = 0; jj < n; jj++){cout << ret[ii][jj]<<' ';}}}

0 0
原创粉丝点击