【题目描述】
一个 n 行 n 列的螺旋方阵按如下方法生成:从方阵的左上角(第 1 行第 1 列)出发,初始时向右移动;如果前方是未曾经过的格子,则继续前进;否则,右转。重复上述操作直至经过方阵中所有格子。根据经过顺序,在格子中依次填入 1,2,3,…,n,便构成了一个螺旋方阵。下面是一个 n=4 的螺旋方阵。

编程输入一个正整数 n,生成一个 n×n 的螺旋方阵。

【输入】
一行一个正整数 n,1≤n≤20。

【输出】
共 n 行,每行 n 个正整数,每个正整数占 5 列。

【输入样例】
5

【输出样例】

代码

#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
int main()
{int n,i,j,k,d,a[51][51];cin>>n;for(i=0;i<=n+1;i++)for(j=0;j<=n+1;j++) a[i][j]=-1;for(i=1;i<=n;i++)for(j=1;j<=n;j++) a[i][j]=0;i=1;j=1;d=0;for(k=1;k<=n*n;k++){a[i][j]=k;if(a[i+dx[d]][j+dy[d]]!=0) d=(++d)%4;i=i+dx[d];j=j+dy[d];}for(i=1;i<=n;i++){for(j=1;j<=n;j++)cout<<setw(5)<<a[i][j];cout<<endl;}return 0;
}

信息学奥赛C++语言: 螺旋方阵1相关推荐

  1. 信息学奥赛c语言初步教程,信息学奥赛培训教程C++版整理版.doc

    信息学奥赛培训教程C++版整理版.doc PAGE 青少年信息学奥林匹克竞赛培训教程 目 录 TOC \o "1-3" \h \z \u HYPERLINK \l "_T ...

  2. 信息学奥赛C++语言: 蛇形方阵1

    [题目描述] 输入一个正整数 n,生成一个 n×n 的蛇形方阵(具体见样例). [输入] 一行一个正整数 n,1≤n≤20. [输出] 共 n 行,每行 n 个正整数,每个正整数占 5 列. [输入样 ...

  3. 信息学奥赛C++语言:回型方阵

    [题目描述] 输入一个正整数 n,输出 n×n 的回型方阵.例如,n=5 时,输出: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 [输入] 一行 ...

  4. 信息学奥赛C++语言: 数字方阵

    [题目描述] 周末,爸爸妈妈带着楠楠去商场玩,正好碰上了商场在举办有奖竞答活动,而且根据问题的难度不同,奖品的价值也有不同.聪明爱动脑的楠楠挑了一个难度最大的问题来挑战自己.最后他赢得了丰厚的奖品和热 ...

  5. 信息学奥赛C++语言:换座位

    [题目描述] 期中考试结束了,班主任想给同学们重新安排座位,所以她让同学们按学号1至n的顺序依次在教室外排好队,然后在队伍中挑选一些同学来改变他们的位置.班主任想知道最终有多少个同学的位置发生了变化. ...

  6. 信息学奥赛C++语言:求平均分

    [题目描述] 求三鑫学校某次信息学竞赛同学们的平均分,以-1表示输入结束. [输入] 一行若干实数,最后一个为 -1. [输出] 一行一个实数,表示平均分,输出保留2位小数. [输入样例] 100 9 ...

  7. 信息学奥赛C++语言:爱吃桃子的琳琳

    [题目描述] 彦彦作为琳琳最好的朋友,她当然知道琳琳很爱吃桃子啦,于是,她们去了果园摘桃子,一棵果树上有N个桃子,可是,琳琳是一个很挑剔的人,她只摘重量大于K的大桃子,彦彦刚刚学信息学,不知道如何是好 ...

  8. 信息学奥赛C++语言: 验证子串

    [题目描述] 输入两个字符串,验证其中一个串是否为另一个串的子串. [输入] 输入两个字符串, 每个字符串占一行,长度不超过200且不含空格. [输出] 若第一个串s1是第二个串s2的子串,则输出(s ...

  9. 信息学奥赛C++语言: 输出最大值

    [题目描述] 输入3个整数,求出最大的数. [输入] 输入为一行,包含三个整数,数与数之间以一个空格分开. [输出] 输出一行,包含一个整数,即最大的整数. [输入样例] 4 10 3 [输出样例] ...

最新文章

  1. Shell脚本个例二
  2. 白话Word2Vec
  3. linux教程第四版第一章,第一章linux shell入门
  4. 算数平均数\几何平均数\调和平均数
  5. IBM服务器 不用引导盘安装方法详解
  6. 湖南生物机电职院信息技术学院召开第一届思政工作会议
  7. 支付机构备付金管理过程
  8. 软件架构设计师:软件架构风格
  9. rainbow和论坛的集成
  10. 如何通过fiddler来进行接口数据mock测试
  11. [SAP顾问之路] ​MM货源清单及配额协议-阿龙学习MM PA 笔记(2)
  12. 如何写好JAVA代码
  13. 国移.动50元电话充值 长途ip充值 自.动秒充到账
  14. Python读取PSV
  15. 关于echarts图中的柱状图添加横线问题
  16. 《算法设计与分析--第二章》
  17. Android 11 踩雷之 App无法唤起相机
  18. NC65 sql server 查询人员薪资发放 数据
  19. 如何改小米计算机用户名和密码,小米路由器默认的用户名和密码是什么?
  20. 深度学习中的backbone的意思

热门文章

  1. linux卸载交叉工具,linux-如何从crosstool-ng工具链名称中删除供应...
  2. 学会这几招,晋升不慌了!
  3. 受邀参加了一场只有副总裁、CTO参加的技术会议!
  4. 一文领略 HTTP 的前世今生
  5. Java 面试题全梳理
  6. 最近学到的「短链接」知识
  7. Eclipse的SVN使用
  8. 神经网络优化算法总结【SGD】---【Adam】
  9. HTML语法初探(一)
  10. List接口的常用方法以及ArrayList/LinkedList源码分析