2017机试题-输入字符打印特殊结构

exp

输入D

输出 A B C D C B A

A  B C B A

A B A

A

思路很简单的一个字符输入问题

把字母套到一个数组里,通过计算输入字符在字母表中的位置按照顺序输入数据即可

大小写字母分开讨论(原题有小写字母,这里只写了大写字母,但是逻辑是一样的,不赘述)

代码实现:

 1 #include<iostream>
 2 using namespace std;
 3 char abc[26]={‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘,‘I‘,‘J‘,‘K‘,‘L‘,‘M‘,‘N‘,‘o‘,‘P‘,‘Q‘,‘R‘,‘S‘,‘T‘,‘U‘,‘V‘,‘W‘,‘X‘,‘Y‘,‘Z‘};
 4 int main()
 5 {
 6     char s;
 7     while(cin>>s)
 8     {
 9         int num;
10         int flag=2;
11         if(s>=‘A‘&&s<=‘Z‘)
12         {
13             num=s-‘A‘;
14             flag=1;
15
16
17         }
18         else num=s-‘a‘;
19         int base=num;
20         if(flag==1)
21         {
22             for(int i=0;i<=num;i++)
23             {
24                 for(int l=0;l<(num-base)*2;l++)
25                     cout<<" ";
26                 for(int j=0;j<base;j++)
27                     cout<<abc[j]<<‘ ‘;
28                 cout<<abc[base];
29                 for(int k=base-1;k>=0;k--)
30                     cout<<‘ ‘<<abc[k];
31                     base--;
32                     cout<<endl;
33             }
34         }
35     }
36     return 0;
37
38 }

原文地址:https://www.cnblogs.com/AKsnoopy/p/10421312.html

时间: 2024-07-30 09:16:59

2017机试题-输入字符打印特殊结构的相关文章

2015年华为校招机试题和代码实现(分解字符串,拼音转数字,去除重复字符并排序,等式变换)

再来一套2015年的华为机试题. 第一题(60分): 按要求分解字符串,输入两个数M,N:M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0.例如:输入2,8, "abc" ,"123456789",则输出为"abc00000","12345678","90000000" 分析思路: 容易题 1.获得字符串的长度length后,判断与要输出位数N的大小,大于N的话,直接printf前N位字符,然

1021: 机器人走迷宫(2017年中南大学研究生复试机试题 )

1021: 机器人走迷宫 时间限制: 1 Sec  内存限制: 128 MB提交: 339  解决: 71[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 有一个愚蠢的机器人走进一个w*h的迷宫,迷宫里有空地和陷阱.他想要访问迷宫的每个方格,但是它很笨,只会按照指令的方向走.当机器人不能走的时候,也就是下一步会遇到陷阱.迷宫边界或者访问过的格子,它会向右转90度(顺时针旋转90度,不能访问已经访问过的方格,且在原地只转一次,移动后可获得又一次旋转机会).请问这个机器人最多可以经过多

1022: 淘金(2017年中南大学研究生复试机试题 )

1022: 淘金 时间限制: 1 Sec  内存限制: 128 MB提交: 205  解决: 75[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 在一片n*m的土地上,每一块1*1的区域里都有一定数量的金子.这一天,你到这里来淘金,然而当地人告诉你,如果你挖了某一区域的金子,上一行,下一行,左边,右边的金子你都不能被允许挖了.那么问题来了:你最多能淘金多少? 输入 对于每组数据,第一行两个数n,m,表示土地的长和宽(1<=n,m<=200) 接下来n行,每行m个数,表示每个区域

九度OJ&amp;北邮机试题(2011网院)

题目一.九度OJ-1177:查找 http://ac.jobdu.com/problem.php?pid=1177 题目描述: 读入一组字符串(待操作的),再读入一个int n记录记下来有几条命令,总共有2中命令:1.翻转  从下标为i的字符开始到i+len-1之间的字符串倒序:2.替换  命中如果第一位为1,用命令的第四位开始到最后的字符串替换原读入的字符串下标 i 到 i+len-1的字符串.每次执行一条命令后新的字符串代替旧的字符串(即下一条命令在作用在得到的新字符串上). 命令格式:第一

华为2014机试题(一)

过几天就要进行华为的机试了,今儿临时抱抱佛脚,在网上找到2014届华为校招的机试题,琢磨了一会儿,贴出来记录下. 首先感谢一下Hackbuteer提供的题目:http://blog.csdn.net/hackbuteer1/article/details/11132567 对于第一题,字符过滤.最简单也是最直接的就是HASH.题目规定了输入序列只能为小写字符'a~z'.因此直接开辟一个大小为26的数组用于记录当前字符是否已经出现即可. 需要注意的问题: 1. hash数组记得初始化 2. pOu

考研复试机试题(2009)

Problem A:请写一个程序,给出指定整数范围[a ,b]内所有的完数,一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数,例如6是完数,因为6=1+2+3. 输入说明:共一组数据,为两个正整数,分别表示a和b(1<a<b<10^5). 输出说明:指定范围内的所有完数,每个数占一行. 输入样本 1 100 输出样本 6 28 解答: /* * 描述: 机试题A解答 * 作者: 张亚超 * 博客: 牟尼的专栏 http://blog.csdn.net/u012027907 *

面试题17:打印1到最大的n位数

// 面试题17:打印1到最大的n位数 // 题目:输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则 // 打印出1.2.3一直到最大的3位数即999. 解题思路: 首先是一个大陷阱,n有多大?万一大到long long类型都盛不下,你要直接动手写,那写的再正确也是凉凉. 我们考虑到用字符来表示数字,然后把字符打印出来就行了. 书上巴拉巴拉说了一种很复杂的方法,代码量大也比较繁琐,感兴趣的去参考资料看就行了. 这里直接介绍第二种简单的方法,其实打印出从1最大的n位十进制数,实际就是

1027: 逃离迷宫(2018年中南大学研究生复试机试题)

1027: 逃离迷宫 时间限制: 1 Sec  内存限制: 128 MB提交: 611  解决: 130[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 PIPI被困在一个迷宫中了!   给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,PIPI想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,PIPI可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位置,只能走到与它相邻的4个位置中,当然在行走过程中,PIPI不能走到迷宫外面去.令人头痛的是,PIPI是个

华为的一道机试题--等式变换

华为的一道机试题 (http://blog.csdn.net/zombie_slicer/article/details/37346025) 第三题:等式变换 输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立. 1 2 3 4 5 6 7 8 9 = X 比如: 12-34+5-67+89 = 5 1+23+4-5+6-7-8-9 = 5 请编写程序,统计满足输入整数的所有整数个数. 输入:       正整数,等式右边的数字 输出:       使该等式成立的个数 样