top1编程
← 返回题目
题解

【入门】斜角III

1 条题解

  • 0
    @ 2026-7-31 4:44:04

    解题思路

    这道题要求输出一个 N 行 N 列的方阵,每个位置放一个字母。

    观察规律:字母从左上角开始是 A,往右和往下都会变成下一个字母。

    • (0,0) = A, (0,1) = B, (0,2) = C……
    • (1,0) = B, (1,1) = C……

    可以发现:第 i 行第 j 列的字母 = 'A' + (i + j) % n。

    参考代码

    #include <iostream>
    #include <iomanip>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
    
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                // (i+j) % n 决定用第几个字母,轮流循环
                char ch = 'A' + (i + j) % n;
                cout << setw(3) << ch;
            }
            cout << endl;
        }
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(N²)
    • 空间复杂度:O(1)
    • 1