返回 课程
信奥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% 完成
“嵌套循环在解决数学问题时非常强大,”我微笑着解释道,”它可以帮助我们系统地遍历多个数值,找出满足特定条件的组合,或者计算复杂的数学关系。”
20.1.1 求1~n中每个数的因子
题目描述:输入一个正整数n,输出1~n中每个数的所有因子。
样例输入:
5
样例输出:
1: 1
2: 1 2
3: 1 3
4: 1 2 4
5: 1 5
代码实现:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n; // 读入正整数n
// 外循环:遍历从1到n的每个数
for(int i=1; i<=n; i++) {
cout << i << ": "; // 输出当前数字,后跟冒号
// 内循环:寻找i的所有因子
for(int j=1; j<=i; j++) {
// 判断j是否是i的因子(能整除i)
if(i % j == 0) {
cout << j << " "; // 如果j是i的因子,则输出j
}
}
cout << endl; // 输出完一个数的所有因子后换行
}
return 0;
}
思考:
- 外循环(i)遍历1到n的每个数
- 内循环(j)检查从1到i的每个可能因子
- 使用取模运算(i % j == 0)判断j是否为i的因子
- 这是一个典型的嵌套循环应用:外循环选择待分析的数,内循环执行分析过程
20.1.2 输出9*9乘法表
题目描述:输出九九乘法表,每个乘积占4个字符位置(包括乘号和等号)。
样例输出:
1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
...
9*1= 9 9*2=18 9*3=27 ... 9*9=81
代码实现:
#include <iostream>
using namespace std;
int main() {
// 外循环:控制乘法表的行数,从1到9
for(int i=1; i<=9; i++) {
// 内循环:生成每行中的乘法式子,j从1遍历到i
// 这样每行只显示i*1到i*i的结果
for(int j=1; j<=i; j++) {
// 输出乘法表达式:i*j=
cout << i << '*' << j << '=';
// 格式控制:如果乘积大于9,直接输出;否则在乘积前加一个空格
// 这样保证每个乘积占据相同的宽度,使表格对齐
if(i*j > 9) cout << i*j << ' '; // 两位数直接输出
else cout << ' ' << i*j << ' '; // 一位数前加空格保持对齐
}
cout << endl; // 每行结束后换行
}
return 0;
}
思考:
- 外循环(i)控制行数,从1到9
- 内循环(j)控制每行中的乘法式子,从1到i
- 注意输出格式的处理:个位数前多加一个空格,保证对齐
- 这个实验展示了如何使用嵌套循环生成具有特定格式要求的输出