题解
数字三角形
1 条题解
-
0
解题思路
输出一个 n 行的数字三角形:第 1 行是 1 个 1,第 2 行是 2 个 2,第 3 行是 3 个 3……第 n 行是 n 个 n。
比如样例 n=5:
1 22 333 4444 55555规律很明显:第 i 行就输出 i 个 i。
用两层循环:
- 外层循环 i 从 1 到 n,代表第几行;
- 内层循环输出 i 次 i(第 i 行有 i 个数);
- 每行结束换行。
参考代码
// P4433 数字三角形:第 i 行输出 i 个 i #include <iostream> using namespace std; int main() { int n; // 行数 cin >> n; for (int i = 1; i <= n; i++) { // 第 1 行到第 n 行 for (int j = 1; j <= i; j++) // 第 i 行输出 i 个 i cout << i; cout << endl; // 每行结束换行 } return 0; }复杂度分析
- 第 i 行要输出 i 个数字,总输出量是 1 + 2 + 3 + ... + n = n(n+1)/2,所以时间复杂度是 O(n²)。
- 只用了一小把变量,空间复杂度是 O(1)。
- 1