题解
相加的字符
1 条题解
-
0
解题思路
这道题考察两个知识点:字符的 ASCII 码,以及偶数的判断方法。
在计算机里,每一个字符都有一个编号,叫 ASCII 码。比如 'a' 的编码是 97,'b' 的编码是 98,'c' 的编码是 99。char 类型的变量可以直接参与算术运算,运算时用的就是它的 ASCII 码。
所以“两个字符的 ASCII 编码之和”,就是直接把两个 char 变量相加,即 m + n。比如 'C' 是 67,'E' 是 69,相加得到 136。
怎么判断一个数是偶数呢?偶数除以 2 的余数一定是 0,奇数除以 2 的余数是 1。所以判断条件写为: (m + n) % 2 == 0 如果余数为 0,说明和是偶数,输出 "YES"。
特别注意:题目说如果不是偶数,“不输出任何内容”,也就是什么都不输出,程序直接结束。很多同学会习惯性地加一个 else 输出 "NO",那就是画蛇添足,做错了。读题时一定要看清楚输出要求。
参考代码
#include using namespace std;
int main() { char m, n; // m、n 表示输入的两个字符 cin >> m >> n; // 读入两个字符
// m + n 是两个字符 ASCII 码之和,% 2 求除以 2 的余数 if ((m + n) % 2 == 0) { // 余数为 0,说明和是偶数 cout << "YES" << endl; // 输出 YES } // 如果不是偶数,什么都不输出,程序直接结束 return 0;}
复杂度分析
程序只读入两个字符,做一次加法、一次取余和一次比较,运算次数固定,时间复杂度是 O(1)。只用了两个 char 变量,空间复杂度也是 O(1)。
- 1