c++顺时针螺旋方阵
题目:建立一个程序,输入整数N,生成并输出N行N列的顺时针螺旋方阵,如下图所示:
解答:这个题目属于编程类经常出现的二维数组基础题,本人作为初学者,自己做出了一套可能有点复杂的解法,欢迎大家讨论交流。
首先是设定基本情况,把第一个数字num[0][0]赋值为1;
int n;cout<<"请输入矩阵的大小:"<<endl;cin>>n;int num[N][N]={0};int i=0,j=0;num[0][0]=1;
for(;num[i][j]<n*n;){ for(;j<n-1;){num[i][++j]=num[i][j-1]+1;/*这个if的作用是当撞到墙壁(出现定义过的),则退出循环,转换方向*/if(num[i][j+1]!=0) break;}/*若达到末端,则退出循环*/if(num[i][j]==n*n)break;for(;i<n-1;){num[++i][j]=num[i-1][j]+1;if(num[i+1][j])break;}/*若达到末端,则退出循环*/ if(num[i][j]==n*n)break;for(;j>0;){num[i][--j]=num[i][j+1]+1;if(num[i][j-1]!=0)break;}/*若达到末端,则退出循环*/if(num[i][j]==n*n)break; for(;i>0;){num[--i][j]=num[i+1][j]+1;if(num[i-1][j]!=0)break;}}
最后就是输出
for(i=0;i<n;i++){for(j=0;j<n;j++){cout<<setw(5)<<num[i][j]; }cout<<endl;}
代码执行后的效果如下图:
c++顺时针螺旋方阵相关推荐
- 所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。
所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 这是最基本的思路 #inclu ...
- 螺旋方阵 螺旋方阵题目描述所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。
所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 输入 输入在一行中给出一个正整 ...
- 【 螺旋方阵 】所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。
输入格式: 输入在一行中给出一个正整数N(<10). 输出格式: 输出N×N的螺旋方阵.每行N个数字,每个数字占3位. 输入样例: 5 输出样例: 1 2 3 4 516 17 18 19 61 ...
- 【无标题】所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。
输入格式: 输入在一行中给出一个正整数N(<10). 输出格式: 输出N×N的螺旋方阵.每行N个数字,每个数字占3位. 输入样例: 5 输出样例: 1 2 3 4 5 16 1 ...
- 实验7.2 二维数组 7-8 螺旋方阵
所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 输入格式: 输入在一行中给出一 ...
- 经典题目螺旋方阵的详解
7-102 螺旋方阵 (20分) 所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵 ...
- 7-4 螺旋方阵 (20 分)
所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里.本题要求构造这样的螺旋方阵. 输入格式: 输入在一行中给出一 ...
- 螺旋方阵(列举法,分治法,java版,逆时针)
目录 螺旋方阵介绍 1.适合基础薄弱同学的 列举法 2.螺旋方阵代码 螺旋方阵介绍 所谓"螺旋方阵",是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向 ...
- 一类螺旋方阵问题的算法分析与实现
一类螺旋方阵问题的算法分析与实现 前言 全国青少年信息学(计算机)奥林匹克竞赛常常要用到许多经典算法,比如约瑟夫问题.螺旋方阵.汉诺塔.八皇后问题等,而 螺旋方阵问题是其中较为常用的一种.这类问题的算 ...
最新文章
- 京东某女程序员求助:刚入职就意外怀孕,纠结还能不能过试用期?网友:职场女性太难!...
- Session 时间
- 从零开始学C++之继承(一):公有/私有/保护继承、overload/overwrite/override之间的区别...
- LeetCode 2162. 设置时间的最少代价(枚举)
- 运维堡垒机(跳板机)系统 python
- easyui的一个bug记录
- file表单元素怎样设置浏览按钮的样式
- 20145321 实验三实验报告
- 《Android框架揭秘》——1.2节通过启动过程分析Android Framework
- 数论入门符号_大o符号快速入门
- 使用WinImage的命令行修改img文件
- 【luogu P3403】跳楼机(图论)
- NONMEM软件自定义模型
- Spring Data JPA 4.方法定义规范
- gdb打印errno显示cant find thread-local storage xxxx
- 面试紧张不善于表达该怎么解决?
- vue3 语法之 父组件,子组件之间的数据传递
- torque--客户端使用torque
- android QQ文字提取,手机QQ V7.1.8文字提取新功能怎么用?手机QQ文字提取教程
- python绘制热力地图_Python学习笔记:Python做热力地图
热门文章
- anaconda配置h5py===2.10.0
- 游戏感虚拟感觉的游戏设计师_从零到游戏设计师:即使您没有任何经验,如何开始制作视频游戏...
- golang语言的入门基础,及window和linux系统上环境的搭配及运行
- 金蝶系统服务器链接设置,金蝶如何设置连接服务器
- mysql前台启动linux,mysql 在linux下的启动
- Github上收集了70个微信小程序源码
- DRV8825驱动步进电机测试经验(抖动不转问题)
- Unity演示场景枫丹白露(Fontainebleau)技术分析
- 通过ip获取所在地理位置、通过手机号获取归属地
- C primer plus 第二章课后复习题与编程练习笔记