螺旋矩阵(递归问题)
题目描述:
Problem Description
bLue 有一个长度为 n*n 的序列,现在他想把这个序列填到一个 n*n 的螺旋矩阵中,你能帮助他吗?
Input
输入数据有多组(数据组数不超过 20),到 EOF 结束。
对于每组数据:
- 第 1 行输入 1 个奇数 n (1 <= n <= 9, n%2 = 1)
- 第 2 行输入 n*n 个用空格隔开的整数(范围 [0, 100]),表示初始序列
Output
对于每组数据,输出一个 n*n 的矩阵,同一行内相邻整数之间用一个 '\t' 隔开。每组数据结尾额外输出一行空行。
Sample Input
3 1 2 3 4 5 6 7 8 9 5 5 3 2 4 8 7 1 6 9 10 11 12 13 14 15 16 17 18 19 20 21 25 27 29 33
Sample Output
7 8 9 6 1 2 5 4 321 25 27 29 33 20 1 6 9 10 19 7 5 3 11 18 8 4 2 12 17 16 15 14 13
1 #include <stdio.h> 2 #include <string.h> 3 int i, a[125], p[12][12];/*数组a存放数据,数组p建立螺旋矩阵*/ 4 void Creat(int n, int left, int right);/*螺旋递归矩阵建立*/ 5 int main() 6 { 7 int n; 8 while(scanf("%d", &n) != EOF){ 9 memset(a, 0, sizeof(a)); 10 memset(p, 0, sizeof(p)); 11 for(i = 1; i <= n * n; i++) 12 scanf("%d", &a[i]); 13 i = 0; 14 int j; 15 Creat(n, n / 2 + 1, n / 2 + 1); 16 for(i = 1; i <= n; i++){ 17 for(j = 1; j <= n; j++){ 18 if(j == n) 19 printf("%d\n", p[i][j]); 20 else printf("%d\t", p[i][j]); 21 } 22 } 23 printf("\n"); 24 } 25 return 0; 26 } 27 void Creat(int n, int left, int right) 28 { 29 int k; 30 if(left == right) 31 p[left][right] = a[++i]; 32 else{ 33 for(k = left; k <= right; k++) 34 p[k][right] = a[++i]; 35 for(k = right - 1; k >= left - 1; k--) 36 p[right][k] = a[++i]; 37 for(k = right - 1; k >= left - 1; k--) 38 p[k][left - 1] = a[++i]; 39 for(k = left; k <= right; k++) 40 p[left - 1][k] = a[++i]; 41 } 42 if(left == right) /*第一圈起始位置的情况*/ 43 Creat(n, left, right + 1); 44 else if(right < n) /*递归边界*/ 45 Creat(n, left - 1, right + 1); //右上角 46 }
转载于:https://www.cnblogs.com/Bravewtz/p/10325780.html
螺旋矩阵(递归问题)相关推荐
- 递归实现n阶螺旋矩阵问题
一.可以手动作图,从N=3开始可以看出,一个大的螺旋矩阵的内部是一个小的矩阵. 由此引入递归的思维.递归式大概是:func (大螺旋矩阵) = 4条外边 + func(小螺旋矩阵). 二.设计递归函数 ...
- LeetCode实战:螺旋矩阵 II
题目英文 Given a positive integer n, generate a square matrix filled with elements from 1 to n^2 in spir ...
- Python实现打印螺旋矩阵功能的方法
Python实现打印螺旋矩阵功能的方法 本文实例讲述了Python实现打印螺旋矩阵功能的方法.分享给大家供大家参考,具体如下: 一.问题描述 输入N, 打印 N*N 螺旋矩阵 比如 N = 3,打印: ...
- LeetCode打卡 52八皇后Ⅱ53最大子序和54螺旋矩阵
原创公众号:bigsai 希望和优秀的你做朋友,感觉不错还请一键三连. 回复进群即可加入和200+人一起打卡.上周打卡: LeetCode 47全排列Ⅱ&48旋转图像 LeetCode 49字 ...
- 牛客16502 螺旋矩阵
链接:https://ac.nowcoder.com/acm/problem/16502 来源:牛客网 题目描述 一个 n 行 n 列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第 1 行第 1 列 ...
- java 外螺旋矩阵_螺旋矩阵的java实现
今天参加了腾讯实习生的在线笔试,螺旋矩阵的问题,算是ACM的入门题吧 想到了有两种实现递归和非递归 输入:3 输出: 1 2 3 8 9 4 7 6 5 输入:5 输出: 1 2 3 ...
- 信息学奥赛一本通 1967:【14NOIP普及组】螺旋矩阵 | 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵
[题目链接] ybt 1967:[14NOIP普及组]螺旋矩阵 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵 类似考题: 洛谷 P1014 [NOIP1999 普及组] Cantor 表 ...
- 求螺旋矩阵任意位置元素 洛谷P2239
之前在矩阵的模拟中,发过几篇输出螺旋矩阵的题目:输出螺旋矩阵,这几天又遇到了螺旋矩阵的新题目,不让你输出螺旋矩阵,而是给你一个下标(x,y),输出当前 矩阵元素 的值. 题目描述 一个n行n列的螺旋矩 ...
- c语言经典的螺旋矩阵的几种
11.13 "今天也要好好学习,虽然水了一天,今天的高代数分也没怎么搞懂" 螺旋矩阵出现在我们学校2-3周前布置的编程题里,当时把自己转晕了. 现在来回顾一下,介绍一下主流的实现算 ...
最新文章
- “阿一web标准学堂”选修课:EditPlus高级使用技巧(附视频、课件、代码下载)...
- 关于 android 环信无法正确获取昵称的问题
- jQuery美化select下拉框
- vc/vs开发的应用程序添加dump崩溃日志转
- 数据库高级知识——索引优化分析(一)
- Android实现网络音乐播放器
- Serverless 实战 —— Serverless 架构揭秘与静态网站部署实战
- 屏幕空间环境光遮蔽(SSAO)算法的实现
- 用Java设计一个通讯录,保存读者的信息。
- PR 审批界面增加显示项方法
- HTML一片空白, 无法渲染: Empty tag doesn't work in some browsers
- 微信公众号查询粉丝列表
- 一文看懂码灵半导体CFW32C7UL系列产品应用(八):扫码设备应用(上)
- 除了WhatsApp以外,还有哪些即时聊天软件?
- Mybatis 自定义自动分页
- 十大编程语言_2020年十大最佳编程语言
- 我的Android进阶之旅------Android通过调用Webservice实现天气预报
- C#Unity3d怪物在一定范围内巡逻发现玩家自动跟踪攻击,血量低于30%自动向后跳3米并缓慢回血的代码和使用
- Alarmmanager制作简单闹钟功能
- Banner——轮播图
热门文章
- add函数python怎么用_Python add()函数是如何使用呢?
- android socket编程实例
- python 网上爬取数据源码_Python爬虫经常爬不到数据,或许你可以看一下小编的这篇文章...
- ajax请求会阻塞dom,Jquery ajax 同步阻塞引起的UI线程阻塞问题_jquery
- 程序员的发展方向是什么?
- xtrabackup备份mysql_xtrabackup备份mysql
- ActionMapping
- 2020-09-08 Win7-Win10内部版本号
- c# mysql 连接类_c#中连接数据库的类怎么写呀?
- React Native将license修改为MIT,与React保持一致