题目描述:

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

螺旋矩阵(递归问题)相关推荐

  1. 递归实现n阶螺旋矩阵问题

    一.可以手动作图,从N=3开始可以看出,一个大的螺旋矩阵的内部是一个小的矩阵. 由此引入递归的思维.递归式大概是:func (大螺旋矩阵) = 4条外边 + func(小螺旋矩阵). 二.设计递归函数 ...

  2. LeetCode实战:螺旋矩阵 II

    题目英文 Given a positive integer n, generate a square matrix filled with elements from 1 to n^2 in spir ...

  3. Python实现打印螺旋矩阵功能的方法

    Python实现打印螺旋矩阵功能的方法 本文实例讲述了Python实现打印螺旋矩阵功能的方法.分享给大家供大家参考,具体如下: 一.问题描述 输入N, 打印 N*N 螺旋矩阵 比如 N = 3,打印: ...

  4. LeetCode打卡 52八皇后Ⅱ53最大子序和54螺旋矩阵

    原创公众号:bigsai 希望和优秀的你做朋友,感觉不错还请一键三连. 回复进群即可加入和200+人一起打卡.上周打卡: LeetCode 47全排列Ⅱ&48旋转图像 LeetCode 49字 ...

  5. 牛客16502 螺旋矩阵

    链接:https://ac.nowcoder.com/acm/problem/16502 来源:牛客网 题目描述 一个 n 行 n 列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第 1 行第 1 列 ...

  6. java 外螺旋矩阵_螺旋矩阵的java实现

    今天参加了腾讯实习生的在线笔试,螺旋矩阵的问题,算是ACM的入门题吧 想到了有两种实现递归和非递归 输入:3 输出: 1  2  3 8  9  4 7  6  5 输入:5 输出: 1  2  3 ...

  7. 信息学奥赛一本通 1967:【14NOIP普及组】螺旋矩阵 | 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵

    [题目链接] ybt 1967:[14NOIP普及组]螺旋矩阵 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵 类似考题: 洛谷 P1014 [NOIP1999 普及组] Cantor 表 ...

  8. 求螺旋矩阵任意位置元素 洛谷P2239

    之前在矩阵的模拟中,发过几篇输出螺旋矩阵的题目:输出螺旋矩阵,这几天又遇到了螺旋矩阵的新题目,不让你输出螺旋矩阵,而是给你一个下标(x,y),输出当前 矩阵元素 的值. 题目描述 一个n行n列的螺旋矩 ...

  9. c语言经典的螺旋矩阵的几种

    11.13 "今天也要好好学习,虽然水了一天,今天的高代数分也没怎么搞懂" 螺旋矩阵出现在我们学校2-3周前布置的编程题里,当时把自己转晕了. 现在来回顾一下,介绍一下主流的实现算 ...

最新文章

  1. “阿一web标准学堂”选修课:EditPlus高级使用技巧(附视频、课件、代码下载)...
  2. 关于 android 环信无法正确获取昵称的问题
  3. jQuery美化select下拉框
  4. vc/vs开发的应用程序添加dump崩溃日志转
  5. 数据库高级知识——索引优化分析(一)
  6. Android实现网络音乐播放器
  7. Serverless 实战 —— Serverless 架构揭秘与静态网站部署实战
  8. 屏幕空间环境光遮蔽(SSAO)算法的实现
  9. 用Java设计一个通讯录,保存读者的信息。
  10. PR 审批界面增加显示项方法
  11. HTML一片空白, 无法渲染: Empty tag doesn't work in some browsers
  12. 微信公众号查询粉丝列表
  13. 一文看懂码灵半导体CFW32C7UL系列产品应用(八):扫码设备应用(上)
  14. 除了WhatsApp以外,还有哪些即时聊天软件?
  15. Mybatis 自定义自动分页
  16. 十大编程语言_2020年十大最佳编程语言
  17. 我的Android进阶之旅------Android通过调用Webservice实现天气预报
  18. C#Unity3d怪物在一定范围内巡逻发现玩家自动跟踪攻击,血量低于30%自动向后跳3米并缓慢回血的代码和使用
  19. Alarmmanager制作简单闹钟功能
  20. Banner——轮播图

热门文章

  1. add函数python怎么用_Python add()函数是如何使用呢?
  2. android socket编程实例
  3. python 网上爬取数据源码_Python爬虫经常爬不到数据,或许你可以看一下小编的这篇文章...
  4. ajax请求会阻塞dom,Jquery ajax 同步阻塞引起的UI线程阻塞问题_jquery
  5. 程序员的发展方向是什么?
  6. xtrabackup备份mysql_xtrabackup备份mysql
  7. ActionMapping
  8. 2020-09-08 Win7-Win10内部版本号
  9. c# mysql 连接类_c#中连接数据库的类怎么写呀?
  10. React Native将license修改为MIT,与React保持一致