问题描述
在一个N*N的方阵中,填入1,2,……N*N个数,并要求构成如下的格式:
例如:
N=5
13 14 15 16 1
12 23 24 17 2
11 22 25 18 3
10 21 20 19 4
9 8 7 6 5
N=6
16 17 18 19 20 1
15 30 31 32 21 2
14 29 36 33 22 3
13 28 35 34 23 4
12 27 26 25 24 5
11 10 9 8 7 6
输入描述
输入一个正整数N,1<=N<=10。
#include <bits/stdc++.h>
using namespace std;
const int man1 = 12;
int arr_c[man1][man1]={0};
int dx[4]={1,0,-1,0};
int dy[4]={0,-1,0,1};
int main()
{int n,x,y,i=0;scanf("%d",&n);x=1;y=n;for (int j=1;j<=n*n;j++){arr_c[x][y]=j;int a=x+dx[i];int b=y+dy[i];if(a>n||b>n||a<=0||b<=0||arr_c[a][b]){i=(i+1)%4;a=x+dx[i];b=y+dy[i];}x=a;y=b;}for(int j=1;j<=n;j++){for(int k=1;k<=n;k++){printf("%d ",arr_c[j][k]);}printf("n");}return 0;}
本文发布于:2024-01-29 14:22:28,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170650935315895.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |