题解
输出大写字母
1 条题解
-
0
P4359 输出大写字母(【入门】)
解题思路
字母在计算机里是字符,用
for循环让字符变量从'A'一直加到'Z'。每次c++就会得到下一个字母,因为字符在内存里就是一个整数(ASCII 码),加 1 等于把编号加 1。倒序输出就从'Z'一直减到'A'。题目要求每两个字母之间用一个空格隔开,而且行首行尾不能有多余空格。处理方法:先判断"我是不是第一个字母",如果不是第一个,就先输出一个空格再输出字母;如果是第一个,直接输出字母。
if (c > 'A') cout << " ";第一行正序输出
A~Z,第二行倒序输出Z~A,中间换行。边界情况:正序循环的结束条件是
c <= 'Z',不要写成c < 'Z',否则会把 Z 漏掉;倒序循环c >= 'A'同样不能漏掉 A。本题没有输入,直接输出两行字母即可。参考代码
// 正序输出A~Z,再倒序输出Z~A #include <iostream> using namespace std; int main() { // 第一行:A到Z for (char c = 'A'; c <= 'Z'; c++) { if (c > 'A') cout << " "; // 不是第一个字母时先打空格 cout << c; } cout << endl; // 第二行:Z到A for (char c = 'Z'; c >= 'A'; c--) { if (c < 'Z') cout << " "; // 不是第一个字母时先打空格 cout << c; } return 0; }复杂度分析
两个循环各循环 26 次,一共 52 次输出,次数固定不变,所以时间复杂度是 。只用一个字符变量,额外空间复杂度也是 。
- 1