题意整理。

  • 输入一个正整数n。
  • 输出对应的n行乘法表。

方法一(循环)

1.解题思路

  • 先确定乘法表行数,再确定列数。
  • 按指定格式,输出对应坐标的乘法公式。

图解展示: alt

2.代码实现

#include <iostream>
using namespace std;

int main() {
    
    int n;
    cin >> n;

    //i表示乘法表行数.
    for(int i=1;i<=n;i++){
        //j表示乘法表列数
        for(int j=1;j<=i;j++){
            //按对应格式输出乘法表
            cout<<j<<" * "<<i<<" = "<<j*i<<"    ";
        }
        //每打印完一行,进行换行
        cout<<endl;
    }

    return 0;
}

3.复杂度分析

  • 时间复杂度:两层循环,最多执行9(9+1)/2=459*(9+1)/2=45次,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)