top1编程
← 返回题目
题解

【入门】请输出n行的9*9乘法表

1 条题解

  • 0
    @ 2026-7-31 11:32:13

    解题思路

    题目要求输出前 n 行的乘法表。拿 n=3 来看:

    1*1=1
    2*1=2 2*2=4
    3*1=3 3*2=6 3*3=9
    

    观察规律:

    • 第 1 行有 1 个式子,第 2 行有 2 个,第 3 行有 3 个……
    • 第 i 行的式子都是 i 乘 1、i 乘 2、…… 一直到 i 乘 i

    所以用嵌套循环:

    1. 外层循环控制行号 i,从 1 到 n
    2. 内层循环控制列号 j,从 1 到 i(第 i 行只有 i 个式子)
    3. 输出 i * j = i*j,每个式子后面加空格

    为什么内层循环到 i 就停? 因为乘法表是三角形的,第 i 行只到 i 列,j 超过 i 就不是这一行的内容了。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
    
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                cout << i << "*" << j << "=" << i * j << " ";
            }
            cout << endl;
        }
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(N²),三角形区域共约 n²/2 个式子
    • 空间复杂度:O(1)
    • 1