当前位置: 首页 > news >正文

中恒建设职业技术培训学校网站wordpress编辑用户头像

中恒建设职业技术培训学校网站,wordpress编辑用户头像,网络安全服务机构,wordpress婚庆模板题目描述 给出一个不大于 9 9 9 的正整数 n n n#xff0c;输出 n n n\times n nn 的蛇形方阵。 从左上角填上 1 1 1 开始#xff0c;顺时针方向依次填入数字#xff0c;如同样例所示。注意每个数字有都会占用 3 3 3 个字符#xff0c;前面使用空格补齐。 输入格式…题目描述 给出一个不大于 9 9 9 的正整数 n n n输出 n × n n\times n n×n 的蛇形方阵。 从左上角填上 1 1 1 开始顺时针方向依次填入数字如同样例所示。注意每个数字有都会占用 3 3 3 个字符前面使用空格补齐。 输入格式 输入一个正整数 n n n含义如题所述。 输出格式 输出符合题目要求的蛇形矩阵。 样例 #1 样例输入 #1 4样例输出 #1 1 2 3 412 13 14 511 16 15 610 9 8 7提示 数据保证 1 ≤ n ≤ 9 1 \leq n \leq 9 1≤n≤9。 1.题目分析 需要总结数学规律二维数组就能解决难在数组的遍历。 题意很简单一个N乘N的矩阵从矩阵第一个元素开始顺时针按顺序打印从边界到中心从小到大直到输出N平方结束。 这里说几个坑 第一总结一般规律是要考虑由于边界缩小带来的条件变化。 第二就是判断元素向内旋转的时机这里就简称为拐点拐点可能不止一个或者两个不能简单的静态判断需要使用修改边界之后的边长计算新的拐点。 最后打印时每个字符占三位%3d. 2.题目思路 创建一个二维数组用于存储结果定义一个自然数k作为元素值初始化为1 定义x,y记录k-1这里K表示当前值K-1表示上一个值的坐标 将二维数组的第一个元素初始化为1 每层打印之后降维到下一层这里设置一个自增因子用于边界判断 计算第一次边界拐点值例如4 * 4的矩阵拐点就为12NN就为4N-4 写一个while循环 1.首先进行拐点判断计算每一层的拐点值如果当前的K值等于拐点时在保证大于零的情况下边界减二上下左右边长减一就是总边长减二拐点值累加新的边界计算之后的拐点值自增因子加一。 2.对数字存放的位置进行规律总结判断 四个判断 条件一 若K-1在第1行且不在最后一列则将K填在K-1的右一列条件二 若K-1在最后一列且不在最后一行,则将K填在K-1的正下方条件三 若K-1在最后一行且不在第一列,则将K填在K-1的左一列条件四 若K-1在第一列且不在第一行,则将K填在K-1的正上方 满足上述条件则依次存放进二维数组值得注意的是需要将每次元素的坐标值手动更新以便下一次元素存放时判断。 值得一提的是如果有多层嵌套的情况这里用自增因子缩小边界值判断的条件不用改变。 3.判断循环跳出的条件为大于N的平方 到此循环结束。 最后循环遍历二维数组打印规定的格式即可。 3.代码实现 #include stdio.hint main() {int n;//创建一个二维数组int arr[9][9] {0};scanf(%d, n);//定义一个自然数kint k 1;//定义x,y记录k-1的坐标int x, y;x 0;y 0;//确定1的位置arr[x][y] k;//每层打印之后降维到下一层这里设置一个自增因子用于边界判断int cnt 0;//记录n的值int p n;//计算第一次边界拐点值int sum 4 * n - 4;//当k大于n*n时循环结束while (k n * n) {//计算每一层的拐点值if (sum k) {//上下左右边长减一就是总边长减二保证边长大于零if (p - 2 0) {p - 2;}//拐点值随着边界缩小而递加sum sum (4 * p - 4);//自增因子加一cnt;}//条件一 若K-1在第1行且不在最后一列则将K填在K-1的右一列//如果有多层嵌套的情况这里用自增因子缩小边界值判断的条件不用改变if (x 0 cnt y ! n - 1 - cnt) {y 1;k;arr[x][y] k;}//条件二 若K-1在最后一列且不在最后一行,则将K填在K-1的正下方//如果有多层嵌套的情况这里用自增因子缩小边界值判断的条件不用改变if (y n - 1 - cnt x ! n - 1 - cnt) {k;x;arr[x][y] k;}//条件三 若K-1在最后一行且不在第一列,则将K填在K-1的左一列//如果有多层嵌套的情况这里用自增因子缩小边界值判断的条件不用改变if (x n - 1 - cnt y ! 0 cnt) {k;y--;arr[x][y] k;}//条件四 若K-1在第一列且不在第一行,则将K填在K-1的正上方//如果有多层嵌套的情况这里用自增因子缩小边界值判断的条件不用改变if (y 0 cnt x ! 0 cnt) {k;//判断K值是否超出范围if (k n * n) {break;}x--;arr[x][y] k;}}//遍历数组查看结果for (int i 0; i n; i) {for (int j 0; j n; j) {//%3d占三位printf(%3d, arr[i][j]);}printf(\n);}return 0; }
http://www.hkea.cn/news/14322607/

相关文章:

  • windows搭建php网站微信营销的优势
  • 公司想制作网站网站设计与开发实训心得
  • 加大网站和微信号建设发挥宣传平台实效性专门做品牌折扣的网站
  • 正安县住房和城乡建设局网站律师免费咨询电话
  • 诚信网站建设的意义wordpress文库主题
  • 阿里巴巴新网站怎么做运营网站模板 手机
  • 网页的基本布局抖音seo排名系统哪个好用
  • 小学网站建设实施方案广州公司注册网址
  • 建湖做网站哪家公司好网络服务器忙请稍后再试3008
  • 培训中心网站建设wordpress获取分类下文章列表
  • 静态网站更新上海工商网企业信息查询系统官网
  • 瑞安 网站建设培训班竞价网站单页面
  • 网站建设的案例山西忻州市忻府区
  • 广东公司响应式网站建设报价会同县做网站
  • 简述阐述网站建设的步骤过程刚做的网站多久能被搜索到
  • 2014网站设计做网站有发展吗
  • 建设营销型网站流程图流量精灵官网
  • 网站上线稳定后的工作工业产品设计与创客实践赛题库
  • 建设营销网站的四个步骤零基础可以做网站吗
  • 高端网站设计报价表凡科网怎么建网站
  • 做网站余姚百度关键词查询工具免费
  • 免费的行情软件网站不用下载wordpress is page
  • 怎样不用代码就能建网站淘宝客网站需要备案吗
  • 小程序简单还是做网站简单企业官方网站怎么写
  • 网站设计实训心得体会视觉设计包括什么
  • 网站建设流程公司wordpress knowhow 下载
  • 企业网站建设兴田德润实惠搜索引擎在线
  • 北京建站模板厂家做外贸都用什么网站
  • 定制网站建设多少钱秀屿网站建设
  • 网站建设数据库设计河南网站备案所需资料