1050. 螺旋矩阵(25) PAT乙级真题
来源:互联网 发布:小学生笔顺软件下载 编辑:程序博客网 时间:2024/05/20 19:47
1050. 螺旋矩阵(25)
本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m*n等于N;m>=n;且m-n取所有可能值中的最小值。
输入格式:
输入在第1行中给出一个正整数N,第2行给出N个待填充的正整数。所有数字不超过104,相邻数字以空格分隔。
输出格式:
输出螺旋矩阵。每行n个数字,共m行。相邻数字以1个空格分隔,行末不得有多余空格。
输入样例:1237 76 20 98 76 42 53 95 60 81 58 93
输出样例:98 95 9342 37 8153 20 7658 60 76
这道题先是一个简单的排序,后面是按照题目意思来的矩阵排列。这里个人也没什么好的建议,就是慢慢调试,我真的第一次做的时候根据输出调试了好多次。当时做这道题,电脑还有点问题1000*1000的矩阵都定义不出来,只能先用10*10的,最后调试好了才在交的时候改了数据,一把辛酸泪。这是我的代码:
#include<stdio.h>#include<math.h>int main(void){ int N,m,n; static int a[10000]; static int b[10000][10000]; int i,j,max,s=0; scanf("%d",&N); n=sqrt(N); while(N%n!=0) { n--; } if (N/n>n) m=N/n; else { n=N/n;m=N/n; } for (i=0;i<N;i++) { scanf("%d",&a[i]); } for (i=0;i<N;i++) //从大到小排序 { max=i; for (j=i+1;j<N;j++) { if (a[j]>a[max]) max=j; } j=a[i];a[i]=a[max];a[max]=j; } i=0;j=0; do { do { b[i][j]=a[s]; s++;j++; }while(j<n && b[i][j]==0); j--;s--; do { b[i][j]=a[s]; s++;i++; }while(i<m && b[i][j]==0); i--;s--; do { b[i][j]=a[s]; s++; }while(b[i][--j]==0 && j>=0); j++;s--; do { b[i][j]=a[s]; s++; }while(b[--i][j]==0 && i>=0); i++;s--; }while(s<N-1); for (i=0;i<m;i++) { for (j=0;j<n;j++) { if (j!=0) printf(" "); printf("%d",b[i][j]); } printf("\n"); } return 0;}
阅读全文
0 0
- 1050. 螺旋矩阵(25)-PAT乙级真题
- pat乙级真题 1050. 螺旋矩阵(25)
- 1050. 螺旋矩阵(25) PAT乙级真题
- 1050. 螺旋矩阵(25)-PAT乙级
- PAT乙级 1050. 螺旋矩阵(25)
- PAT乙级 1050. 螺旋矩阵(25)
- [PAT乙级]1050. 螺旋矩阵(25)
- PAT乙级 1050. 螺旋矩阵(25)
- PAT乙级1050. 螺旋矩阵(25)
- pat 乙级 1050. 螺旋矩阵(25)
- [PAT-乙级]1050.螺旋矩阵
- PAT乙级—1050. 螺旋矩阵(25)-native
- PAT乙级 1050 螺旋矩阵(25)
- PAT乙级1050 螺旋矩阵
- 1050. 螺旋矩阵(25) PAT乙级&&1105. Spiral Matrix (25)PAT甲级
- PAT 1050. 螺旋矩阵(25)
- PAT 1050. 螺旋矩阵(25)
- PAT 1050.螺旋矩阵(25)
- 向量绕轴旋转
- 使用Spring boot基于Redis快速搭建分布式Session缓存方案
- source, ~/.bashrc, ~/.bash_profile详解
- 开发一个基于React Native的简易demo--源码
- JavaScript语言精粹经典实例(整理篇)
- 1050. 螺旋矩阵(25) PAT乙级真题
- http://blog.csdn.net/kobebryantlin0/article/details/54880933
- SQL生成数据字典语句
- C# 异步委托使用
- 打包发布关于设置自动旋转屏幕默认旋转方向
- 2017大盘点:手机篇
- centos7安装oracle12c 一
- 听见丨谷歌AI自造“子AI” 性能略超过人类所造 高通发布年度旗舰芯片骁龙845
- EventBas简单的黏性事件传值的简单实现