酷代码 AI
菜单

c++ 现在有一个由 * 组成的边长为 n n 的直角三角形。这个直角三角形的第一行长度为 n n,第二行长度为 n − 1 n−1,第三行长度为 n − 2 n−2... 第 n n 行长度为 1 1。 例如一个边长为 4 4 的直角三角形的形态如下所示: 复制 **** *** ** * 但是小核桃将这些 * 替换成了有顺序的大写字母,分别为 ABCD...XYZ。即上述三角形变成了: 复制 ABCD EFG HI J 当 * 的数量大于 26 26 时,组成直角三角形字母不够用,则重新从 A A 开始。例如一个长度为 7 7 的直角三角形: 复制 ABCDEFG HIJKLM NOPQR STUV WXY ZA B 现在给出直角三角形的边长 n n,求第 a a 行的第 b b 个的字母是什么。 回答篇幅:简单明了

```cpp #include <iostream> char getChar(int n, int a, int b) { int count = 0; for (int i = 1; i < a; ++i) { count += n - i + 1; } count += b; return 'A' + (count - 1) % 26; } int main() { int n, a, b; std::cin >> n >> a >> b; std::cout << getChar(n, a, b) << std::endl; return 0; } ``` 此代码先定义`getChar`函数计算从开始到第`a`行第`b`个字符的总字符数,再通过取模运算得出对应字母。`main`函数负责读取输入的`n`、`a`和`b`,调用`getChar`函数并输出结果。 [2026-01-27 20:07:09 | AI问答 | 212点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多