分析总结一下所有有关打印题目的套路和思路:pat乙级:1109 擅长C, 1008元素循环右移,1050 螺旋矩阵,1027 打印沙漏等等
分析:
- 首先你要明白第一件事:所有要打印东西的题目打印都是从第一行到最后一行,从第一列到最后一列,你是没办法跳着打印的。可以看看其他几个打印题目1008元素循环右移,1050 螺旋矩阵1027 打印沙漏
- 观察要求打印的东西能否直接通过循环之间行列关系和要打印东西的个数和位置关系直接打印出来如:1027 打印沙漏,可以,元素循环右移可以。但是显然1050 螺旋矩阵1109 擅长C都不行,那我们该怎么办呢?有一种方法就是通过容器储存下来,打印没办法拐着弯来,那访问容器总行了把。
- 既然按照位置存好了那就一切好办了
来:先看题目
1109 擅长C
当你被面试官要求用 C 写一个“Hello World”时,有本事像下图显示的那样写一个出来吗?

输入格式:
输入首先给出 26 个英文大写字母 A-Z,每个字母用一个 7×5 的、由 C 和 . 组成的矩阵构成。最后在一行中给出一个句子,以回车结束。句子是由若干个单词(每个包含不超过 10 个连续的大写英文字母)组成的,单词间以任何非大写英文字母分隔。题目保证至少给出一个单词。
输出格式:
对每个单词,将其每个字母用矩阵形式在一行中输出,字母间有一列空格分隔。单词的首尾不得有多余空格。相邻的两个单词间必须有一空行分隔。输出的首尾不得有多余空行。
点击查看代码
输入样例:
..C..
.C.C.
C...C
CCCCC
C...C
C...C
C...C
CCCC.
C...C
C...C
CCCC.
C...C
C...C
CCCC.
.CCC.
C...C
C....
C....
C....
C...C
.CCC.
CCCC.
C...C
C...C
C...C
C...C
C...C
CCCC.
CCCCC
C....
C....
CCCC.
C....
C....
CCCCC
CCCCC
C....
C....
CCCC.
C....
C....
C....
CCCC.
C...C
C....
C.CCC
C...C
C...C
CCCC.
C...C
C...C
C...C
CCCCC
C...C
C...C
C...C
CCCCC
..C..
..C..
..C..
..C..
..C..
CCCCC
CCCCC
....C
....C
....C
....C
C...C
.CCC.
C...C
C..C.
C.C..
CC...
C.C..
C..C.
C...C
C....
C....
C....
C....
C....
C....
CCCCC
C...C
C...C
CC.CC
C.C.C
C...C
C...C
C...C
C...C
C...C
CC..C
C.C.C
C..CC
C...C
C...C
.CCC.
C...C
C...C
C...C
C...C
C...C
.CCC.
CCCC.
C...C
C...C
CCCC.
C....
C....
C....
.CCC.
C...C
C...C
C...C
C.C.C
C..CC
.CCC.
CCCC.
C...C
CCCC.
CC...
C.C..
C..C.
C...C
.CCC.
C...C
C....
.CCC.
....C
C...C
.CCC.
CCCCC
..C..
..C..
..C..
..C..
..C..
..C..
C...C
C...C
C...C
C...C
C...C
C...C
.CCC.
C...C
C...C
C...C
C...C
C...C
.C.C.
..C..
C...C
C...C
C...C
C.C.C
CC.CC
C...C
C...C
C...C
C...C
.C.C.
..C..
.C.C.
C...C
C...C
C...C
C...C
.C.C.
..C..
..C..
..C..
..C..
CCCCC
....C
...C.
..C..
.C...
C....
CCCCC
HELLO~WORLD!
输出样例:
点击查看代码
C...C CCCCC C.... C.... .CCC.
C...C C.... C.... C.... C...C
C...C C.... C.... C.... C...C
CCCCC CCCC. C.... C.... C...C
C...C C.... C.... C.... C...C
C...C C.... C.... C.... C...C
C...C CCCCC CCCCC CCCCC .CCC.
C...C .CCC. CCCC. C.... CCCC.
C...C C...C C...C C.... C...C
C...C C...C CCCC. C.... C...C
C.C.C C...C CC... C.... C...C
CC.CC C...C C.C.. C.... C...C
C...C C...C C..C. C.... C...C
C...C .CCC. C...C CCCCC CCCC.
我的代码:
#include<bits/stdc++.h>
using namespace std;
void print(string a,string b[]){
for(int i=0;i<7;i++){
for(int j=0;j<a.size();j++){
if(j<a.size()-1)
cout<<b[a[j]-'A'].substr(i*6,6);
else
cout<<b[a[j]-'A'].substr(i*6,5);
}
cout<<endl;
}
}
int main(){
string a[26];
for(int i=0;i<26;i++){
char c[43];
int k=0;
while(k<42){
scanf("%c",&c[k]);
if(c[k]=='\n')c[k]=' ';
k++;
}
c[42]='\0';
a[i]=c;
}
//cout<<a[1];
string b;getline(cin,b);
vector<string>vvv;
int late=0,tag=0;
for(int i=0;i<b.size();i++){
if((b[i]>'Z'||b[i]<'A')){
if(tag){
vvv.push_back(b.substr(late,i-late));late=i+1;tag=0;
}
else
late=i+1;
}
else{
tag=1;
}
}
if(late<b.size())vvv.push_back(b.substr(late));//注意后面的没有结束符号如HELLO~WORLD AAA
for(int kkk=0;kkk<vvv.size();kkk++){
print(vvv[kkk],a);
if(kkk<vvv.size()-1)cout<<endl;
}
return 0;
}
1050 螺旋矩阵
本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值中的最小值。
输入格式:
输入在第 1 行中给出一个正整数 N,第 2 行给出 N 个待填充的正整数。所有数字不超过 10^4,相邻数字以空格分隔。
输出格式:
输出螺旋矩阵。每行 n 个数字,共 m 行。相邻数字以 1 个空格分隔,行末不得有多余空格。
输入样例:
12
37 76 20 98 76 42 53 95 60 81 58 93
输出样例:
98 95 93
42 37 81
53 20 76
58 60 76
我的代码
#include<bits/stdc++.h>
using namespace std;
bool compa(int a,int b){
return a>b;}
int c[10000][105]={0};
int main (){
int n;cin>>n;
int a[10001];
for(int i=0;i<n;i++){scanf("%d",&a[i]);}
sort(a,a+n,compa);
int n2,m1;
for(n2=sqrt((double)n);n2>=1;n2--)
{
if(n%n2==0)
{
m1=n/n2;
break;
}
}
int cnt=0;
for(int i=0;;i++){
for(int j=i;j<n2&&c[i][j]==0&&cnt<n;j++){
c[i][j]=a[cnt++];
}
for(int j=i+1;j<m1&&c[j][n2-i-1]==0&&cnt<n;j++){
c[j][n2-i-1]=a[cnt++];
}
for(int j=n2-i-2;j>=0&&c[m1-1-i][j]==0&&cnt<n;j--){
c[m1-1-i][j]=a[cnt++];
}
for(int j=m1-i-2;j>=0&&c[j][i]==0&&cnt<n;j--){
c[j][i]=a[cnt++];
}
if(cnt==n)break;
}
for(int i = 0;i<m1;i++){
for(int j=0;j<n2;j++){
printf("%d",c[i][j]);
if(j<n2-1)printf(" ");
}
printf("\n");
}
return 0;
}
待会闲下来再更新分析
分析总结一下所有有关打印题目的套路和思路:pat乙级:1109 擅长C, 1008元素循环右移,1050 螺旋矩阵,1027 打印沙漏等等的更多相关文章
- PAT自测_打印沙漏、素数对猜想、数组元素循环右移、数字加倍重排、机器洗牌
-自测1. 打印沙漏() 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号 ...
- shell练习--PAT题目1008:数组元素循环右移问题 (失败案例,运行超时)
一个数组A中存有N(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A ...
- PAT (Basic Level) Practise (中文)-1027. 打印沙漏(20)
PAT (Basic Level) Practise (中文)-1027. 打印沙漏(20) http://www.patest.cn/contests/pat-b-practise/1027 本题 ...
- c++刷题(43/100)矩阵旋转打印
题目1:矩阵旋转打印 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则 ...
- PAT(B) 1027 打印沙漏(Java)
题目链接:1027 打印沙漏 (20 point(s)) 题目描述 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * ...
- PAT乙级 1027. 打印沙漏(20)
1027. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...
- PAT (Basic Level) Practise (中文)1027. 打印沙漏(20)
1027. 打印沙漏(20) 时间限制 200 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...
- PAT-乙级-1027. 打印沙漏(20)
1027. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...
- PAT 乙级 1027 打印沙漏(20) C++版
1027. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...
- [1.16更新B14特征处理]津南数字制造题目解读及部分思路~~有趣的特征
[1.16更新B14特征处理]津南数字制造题目解读及部分思路--有趣的特征 Article onion啦啦啦 2019-01-17 16:03:38 11 1790 11 首先声明,我并不能保证这些特 ...
随机推荐
- VSCode解决Python中空格和制表符混用报错
Python对缩进的要求非常严格,缩进控制不正确可能会造成代码执行不正确甚至报错. 遇到报错"TabError: inconsistent use of tabs and spaces in ...
- 铁威马NAS添加SSL证书实现HTTPS安全访问
如何让你的铁威马NAS域名可以支持HTTPS呢?其实想要支持HTTPS,只需要获取第三方签发的证书,信任你的域名就可以啦! 在铁威马TOS 4.2系统中,允许用户导入安全证书,或者自我颁发安全证书,这 ...
- 第二篇:前端基础之CSS
CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...
- nuxt.js实现页面刷新功能
key 属性Key:String 或者Function key属性赋值到<router-view>,这对于在动态页面和不同路径中进行转换很有用.不同的key会使页面组件重新渲染. 设置ke ...
- 洛谷P1605例题分析
迷宫 题目描述 给定一个 \(N \times M\) 方格的迷宫,迷宫里有 \(T\) 处障碍,障碍处不可通过. 在迷宫中移动有上下左右四种方式,每次只能移动一个方格.数据保证起点上没有障碍. 给定 ...
- 小型web产品的功能测试要点或测试大纲
本文参考配置啦:-- Web类产品功能测试大纲,黑盒测试参考测试范围 [官网]:无 应用场景 黑盒测试,功能测试中常常需要考虑很多问题,这里根据本人的工作经验遇到的进行了系列总结.给出了一个常用的测试 ...
- [机器学习] PCA (主成分分析)详解
转载于https://my.oschina.net/gujianhan/blog/225241 一.简介 PCA(Principal Components Analysis)即主成分分析,是图像处理中 ...
- python之路28 网络编程基础之OSI七层协议模型
OSI七层协议 """ 七层模型,亦称OSI(Open System Interconnection).参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间 ...
- TiDB 底层存储结构 LSM 树原理介绍
作者:京东物流 刘家存 随着数据量的增大,传统关系型数据库越来越不能满足对于海量数据存储的需求.对于分布式关系型数据库,我们了解其底层存储结构是非常重要的.本文将介绍下分布式关系型数据库 TiDB 所 ...
- 算法学习笔记(8.1): 网络最大流算法 EK, Dinic, ISAP
网络最大流 目录 网络最大流 EK 增广路算法 Dinic ISAP 作者有话说 前置知识以及更多芝士参考下述链接 网络流合集链接:网络流 最大流,值得是在不超过管道(边)容量的情况下从源点到汇点最多 ...