题解
【入门】请输出n行的9*9乘法表
1 条题解
-
0
解题思路
题目要求输出前 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
所以用嵌套循环:
- 外层循环控制行号 i,从 1 到 n
- 内层循环控制列号 j,从 1 到 i(第 i 行只有 i 个式子)
- 输出 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