top1编程
← 返回题目
题解

相加的字符

1 条题解

  • 0
    @ 2026-8-4 10:20:43

    解题思路

    这道题考察两个知识点:字符的 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