换图形在2级的题中倒是挺常见的 但是画三角形我倒是不常见这道题还是有点难度的
老规矩 题目奉上
这是原先的老版本代码
#include<bits/stdc++.h> using namespace std; typedef long long LL; int main() { LL n, cnt = 0; cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i > j || i == j) { cout << (char) ('A' + cnt % 26); cnt ++; } } cout << endl; } return 0; }使用for循环嵌套
外层循环i代表行,i从0到\(n-1\),一共n行
内衬循环j代表列,j从0到\(n‑1\)
画三角形是一个矩形找到右对角线下面的部分就是一个三角形
至于for循环里面的内容
if(i >= j)条件:
- i = 0(第 1 行),满足条件,输出 1 个字符
- j = 1(第 2 行),满足条件,输出 2 个字符
- i = 2(第 3 行),满足条件,输出 3 个字符
- 正好做到:第i + 1 行 输出 i + 1个字母
每行内层循环结束,执行cout << endl;进行换行
样例 n=3 执行流程
cnt 初始0
i = 0
j = 0 到i >= j 成立,输出A,cnt = 1; j = 1 j = 2 条件不成立;换行
i = 1;
j = 0成立 输出B cnt =2; j = 1 成立输出C cnt = 3; j = 2 不成立;换行
i = 2;
j = 0 输出D cnt = 4; j = 1 输出Ecnt = 5; j = 2输出F cnt = 6;换行
世间万象 纸上一隅 愿这些文字能带给你片刻启发 山高水远 我们后会有期