题目的主要信息:
- 输入一个正整数n,打印对应的乘法表,n为1 ~ 9中的一个数
- 要求:数字和符号之间空格隔开,式子和式子之间使用4个空格隔开
- 乘法表形如:
具体做法:
仔细观察乘法表,我们发现一共有n行,第i行的列数不会超过i列,而乘法公式前一个乘数是对应其列,后一个乘数对应其行,因此我们可以考虑用遍历如下的矩阵的方式:
遍历1 ~ n行,用n来约束行数,然后对于每一行,遍历1 ~ i列,用每行的行号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 << j << " * " << i << " = " << i * j << " ";
}
cout << endl;
}
return 0;
}
复杂度分析:
- 时间复杂度:O(n2),两层循环遍历
- 空间复杂度:O(1),无额外空间