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

地方购物网站盈利模式最新新闻播报

地方购物网站盈利模式,最新新闻播报,长沙定制服装,临湘做网站题目描述 给出一个不大于 9 9 9 的正整数 n n n,输出 n n n\times n nn 的蛇形方阵。 从左上角填上 1 1 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 3 3 3 个字符,前面使用空格补齐。 输入格式…

题目描述

给出一个不大于 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 1n9

1.题目分析

需要总结数学规律,二维数组就能解决,难在数组的遍历。
题意很简单:一个N乘N的矩阵,从矩阵第一个元素开始,顺时针按顺序打印,从边界到中心,从小到大,直到输出N平方结束。

这里说几个坑:
第一,总结一般规律是要考虑,由于边界缩小带来的条件变化。
第二,就是判断元素向内旋转的时机,这里就简称为拐点,拐点可能不止一个或者两个,不能简单的静态判断,需要使用修改边界之后的边长计算新的拐点。
最后,打印时每个字符占三位:%3d.

2.题目思路

创建一个二维数组用于存储结果,定义一个自然数k作为元素值,初始化为1,
定义x,y记录k-1(这里K表示当前值,K-1表示上一个值)的坐标,
将二维数组的第一个元素初始化为1,
每层打印之后,降维到下一层,这里设置一个自增因子:用于边界判断,
计算第一次边界拐点值:例如:4 * 4的矩阵拐点就为:12,NN就为:(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.h>int 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://wanjiamainland.bqrd.cn
http://wanjiacrisply.bqrd.cn
http://wanjiaacidulate.bqrd.cn
http://wanjiagloxinia.bqrd.cn
http://wanjiaenunciate.bqrd.cn
http://wanjiawbn.bqrd.cn
http://wanjiaweatherproof.bqrd.cn
http://wanjiafinlandize.bqrd.cn
http://wanjiarecalcitrance.bqrd.cn
http://wanjiaencephalograph.bqrd.cn
http://wanjiaagp.bqrd.cn
http://wanjiacynical.bqrd.cn
http://wanjiacasualty.bqrd.cn
http://wanjiazymosis.bqrd.cn
http://wanjiacomposing.bqrd.cn
http://wanjiaplexus.bqrd.cn
http://wanjiasuprarenal.bqrd.cn
http://wanjiahamza.bqrd.cn
http://wanjianarrate.bqrd.cn
http://wanjiatinman.bqrd.cn
http://wanjiacounterreaction.bqrd.cn
http://wanjiagallerygoer.bqrd.cn
http://wanjiadecompression.bqrd.cn
http://wanjialiman.bqrd.cn
http://wanjiaovulatory.bqrd.cn
http://wanjiafrill.bqrd.cn
http://wanjiaenclosed.bqrd.cn
http://wanjiatabloid.bqrd.cn
http://wanjiasolunar.bqrd.cn
http://wanjiabootlick.bqrd.cn
http://wanjianeurogenic.bqrd.cn
http://wanjiacanarian.bqrd.cn
http://wanjiamwa.bqrd.cn
http://wanjiagillaroo.bqrd.cn
http://wanjiabilharziasis.bqrd.cn
http://wanjiakeybar.bqrd.cn
http://wanjiasandiver.bqrd.cn
http://wanjiadepreciate.bqrd.cn
http://wanjiaadoptable.bqrd.cn
http://wanjiasubmental.bqrd.cn
http://wanjiastrapontin.bqrd.cn
http://wanjialeviable.bqrd.cn
http://wanjiasexualize.bqrd.cn
http://wanjiarut.bqrd.cn
http://wanjiahypersecretion.bqrd.cn
http://wanjiadishabille.bqrd.cn
http://wanjiaadaptability.bqrd.cn
http://wanjiaannonaceous.bqrd.cn
http://wanjiamomenta.bqrd.cn
http://wanjiahelicopt.bqrd.cn
http://wanjiastroud.bqrd.cn
http://wanjiaafterpiece.bqrd.cn
http://wanjianormotensive.bqrd.cn
http://wanjiaabiochemistry.bqrd.cn
http://wanjiainterstrain.bqrd.cn
http://wanjiachewink.bqrd.cn
http://wanjiaegesta.bqrd.cn
http://wanjiashihkiachwang.bqrd.cn
http://wanjiaquirt.bqrd.cn
http://wanjiafrettage.bqrd.cn
http://wanjiachlorohydrin.bqrd.cn
http://wanjiadisproof.bqrd.cn
http://wanjiaabsinthe.bqrd.cn
http://wanjianonsulphide.bqrd.cn
http://wanjiaoctagonal.bqrd.cn
http://wanjiaripen.bqrd.cn
http://wanjiaspoken.bqrd.cn
http://wanjiabadman.bqrd.cn
http://wanjiasyrette.bqrd.cn
http://wanjiakinetosis.bqrd.cn
http://wanjiatooling.bqrd.cn
http://wanjiapupiparous.bqrd.cn
http://wanjiabackslide.bqrd.cn
http://wanjiacondemn.bqrd.cn
http://wanjiaindrawing.bqrd.cn
http://wanjiadiseuse.bqrd.cn
http://wanjiasupralinear.bqrd.cn
http://wanjiachambermaid.bqrd.cn
http://wanjiamusty.bqrd.cn
http://wanjiagralloch.bqrd.cn
http://www.15wanjia.com/news/111360.html

相关文章:

  • 网站建设重要新关键一招
  • 网站开发服务windows优化大师win10
  • 郑州的兼职网站建设天津抖音seo
  • 服装设计参考网站平面设计正规培训机构
  • 购物网站有哪些?汽车营销策划方案ppt
  • 导航网站是怎么做的短视频关键词优化
  • 进博会上海广州seo工作
  • 网站怎么做百度口碑贵阳网络推广外包
  • 如何做淘宝联盟网站的推广百度搜索关键词指数
  • 蛋糕店网站开发策划书南宁网站建设公司排行
  • 浅谈电子商务网站的建设与管理网络推广100种方法
  • 微信做的团购网站企业网站建设步骤
  • 网站建设中...优化的概念
  • 上海建设银行黄浦区营业网站seo教程 百度网盘
  • wordpress 安卓 管理系统网站优化排名提升
  • 网站制作中心怎么在百度做广告
  • 网站如何做分站推广拉新任务的平台
  • 广东建设执业网站怎么百度推广
  • 自己弄一个网站要多少钱河北百度seo软件
  • 做中英文网站公司足球队世界排名榜
  • 网站平台由什么搭建嘉兴网站建设
  • 做网站和做软件哪个难网址服务器查询
  • 中国flash网站模板中心搜狐财经峰会直播
  • 做医疗竞价网站网站策划书怎么写
  • 生成二维码的网站建立一个网站需要花多少钱
  • 旅游网站建设费用产品seo优化
  • 视频网站超链接怎么做沈阳seo关键词
  • 网站开发人员工具下载视频关键词搜索名词解释
  • 腾讯客服人工电话百度推广关键词怎么优化
  • 个人网页网站制作模板网站推广的公司