返回 课程
信奥AC之路-2级
0% 完成
0/0 步骤
-
第一课:字符5 主题|小节
-
第二课 嵌套循环与矩形图案(一)4 主题|小节
-
第三课 嵌套循环与矩形图案(二)3 主题|小节
-
第四课:矩形三5 主题|小节
-
第五课:字符矩形7 主题|小节
-
第六课:直角三角形6 主题|小节
-
第七课:倒三角形7 主题|小节
-
第八课:字符三角形8 主题|小节
-
第九课:字符倒三角形7 主题|小节
-
第十课:平行四边形6 主题|小节
-
第十一课:字符直角三角形5 主题|小节
-
第十二课:左斜三角形6 主题|小节
-
第十三课:等腰三角形6 主题|小节
-
第十四课:倒置等腰三角形7 主题|小节
-
第十五课:上下对称图形4 主题|小节
-
第十六课:复杂对称图形5 主题|小节
-
第十七课:左右对称图形5 主题|小节
-
第十八课:空心图形5 主题|小节
-
第十九课:空心图形3 主题|小节
-
第二十课:嵌套应用4 主题|小节
-
第二十一课:嵌套应用二4 主题|小节
-
第二十二课:嵌套应用三3 主题|小节
-
第二十三课:嵌套应用四3 主题|小节
课 进展
0% 完成
“小朋友们,理论讲完了,现在让我们通过一系列有趣的实验来掌握嵌套循环!”我兴奋地说,”我们将创建各种不同的正方形图案!”
2.2.1 行号正方形
题目描述:输入一个正整数n,输出一个n×n的正方形,每行的所有数字都等于当前的行号。
样例输入:
5
样例输出:
11111
22222
33333
44444
55555
代码实现:
#include <iostream>
using namespace std;
int main() {
int n; // 存储正方形大小
cin >> n; // 读取用户输入
for(int i=1; i<=n; i++){ // 外循环:控制行数
for(int j=1; j<=n; j++){ // 内循环:控制列数
cout << i; // 输出当前行号
}
cout << endl; // 换行,准备下一行
}
return 0;
}
思考:
- 外循环(i)控制行数,从1到n
- 内循环(j)控制每行输出的数字数,从1到n
- 输出的是当前的行号i
2.2.2 列号正方形
题目描述:输入一个正整数n,输出一个n×n的正方形,每列的所有数字都等于当前的列号。
样例输入:
5
样例输出:
12345
12345
12345
12345
12345
代码实现:
#include <iostream>
using namespace std;
int main() {
int n; // 存储正方形大小
cin >> n; // 读取用户输入
for(int i=1; i<=n; i++){ // 外循环:控制行数
for(int j=1; j<=n; j++){ // 内循环:控制列数
cout << j; // 输出当前列号,与行号正方形的区别
}
cout << endl; // 换行,准备下一行
}
return 0;
}
思考:
- 与实验一相比,唯一的区别是输出内容从i变成了j
- 通过改变输出内容,我们可以创建不同的图案
2.2.3 倒序行号正方形
题目描述:输入一个正整数n,输出一个n×n的正方形,行号从n开始倒序排列。
样例输入:
5
样例输出:
55555
44444
33333
22222
11111
代码实现(方法一):
#include <iostream>
using namespace std;
int main() {
int n; // 存储正方形大小
cin >> n; // 读取用户输入
for(int i=n; i>=1; i--){ // 外循环:从n递减到1,实现倒序
for(int j=1; j<=n; j++){ // 内循环:控制列数
cout << i; // 输出当前行号,从大到小
}
cout << endl; // 换行,准备下一行
}
return 0;
}
代码实现(方法二):
#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<=n; j++){ // 内循环:控制列数
cout << n+1-i; // 使用公式计算倒序行号
}
cout << endl; // 换行,准备下一行
}
return 0;
}
思考:
- 方法一:直接修改外循环,使i从n开始递减
- 方法二:保持外循环不变,但输出n+1-i,实现倒序效果
- 两种方法产生相同的结果,展示了解决问题的不同思路
2.2.4 倒序列号正方形
题目描述:输入一个正整数n,输出一个n×n的正方形,列号从n开始倒序排列。
样例输入:
5
样例输出:
54321
54321
54321
54321
54321
代码实现(方法一):
#include <iostream>
using namespace std;
int main() {
int n; // 存储正方形大小
cin >> n; // 读取用户输入
for(int i=1; i<=n; i++){ // 外循环:控制行数
for(int j=n; j>=1; j--){ // 内循环:从n递减到1,实现列号倒序
cout << j; // 输出当前列号,从大到小
}
cout << endl; // 换行,准备下一行
}
return 0;
}
代码实现(方法二):
#include <iostream>
using namespace std;
int main() {
int n; // 存储正方形大小
cin >> n; // 读取用户输入
for(int i=1; i<=n; i++){ // 外循环:控制行数
for(int j=1; j<=n; j++){ // 内循环:正常从1到n
cout << n+1-j; // 使用公式计算倒序列号
}
cout << endl; // 换行,准备下一行
}
return 0;
}
思考:
- 方法一:修改内循环,使j从n开始递减
- 方法二:保持内循环不变,但输出n+1-j,实现倒序效果
- 两种方法产生相同的结果,体现了循环设计的灵活性