返回 课程

信奥AC之路-第一级-A学段

0% 完成
0/0 步骤
  1. 第一课 开发环境与基础输出
    4 主题|小节
  2. 第二课 算数运算符
    6 主题|小节
  3. 第三课 输入与运算
    3 主题|小节
  4. 第四课 数值操作
    4 主题|小节
  5. 第五课 表达式与运算符
    3 主题|小节
  6. 第六课 三目运算与双分支(缺导语+本课目标)
    2 主题|小节
  7. 第七课 多分支结构(缺导语+本课目标)
    1 主题|小节
  8. 第八课 多if语句
    1 主题|小节
  9. 第九课 三种分支结构的比较
    1 主题|小节
  10. 第十课 巩固学习分支结构
    1 主题|小节
  11. 第十一课 switch与复合语句
    3 主题|小节
  12. 第十二课 while循环
    2 主题|小节
  13. 第十三课 while循环的简单条件输出
    1 主题|小节
  14. 第十四课 while循环的输入序列处理
    1 主题|小节
  15. 第十五课 while循环的复杂条件输出
    2 主题|小节
  16. 第十六课 while循环与数据统计
    1 主题|小节
  17. 第十七课 for循环结构
    3 主题|小节
  18. 第十八课 for循环的输入序列处理)
    1 主题|小节
  19. 第十九课 深入探索for循环
    2 主题|小节
  20. 第二十课 三种循环的对比
    2 主题|小节
  21. 第二十一课 程序调试(一)
    3 主题|小节
  22. 第二十二课 调试工具的使用
    2 主题|小节
  23. 第二十三课 综合复习
    2 主题|小节
  24. 第二十四课 学习评估
    1 主题|小节
课 19, 主题|小节 1
进行中

19.1 for循环的复杂应用

2025年4月20日
课 进展
0% 完成

“小朋友们,现在我们来挑战一些更有趣的问题!”

🔬 **实验42:区间内特殊数的统计**

“`
描述:
在m到n之间,找出所有能同时被3和5整除的数。

输入:
两个正整数m和n(m < n) 输出: 1. 所有满足条件的数 2. 这样的数有多少个 样例输入: 1 30 样例输出: 能同时被3和5整除的数有:15 30 共找到2个数 解题思路: 1. 用for循环遍历m到n 2. 用两个条件判断是否同时满足: - 能被3整除:i % 3 == 0 - 能被5整除:i % 5 == 0 3. 用计数器记录满足条件的数的个数 ``` ```cpp #include
using namespace std;

int main() {
int m, n;
cout << "请输入两个数m和n(m < n):"; cin >> m >> n;

int count = 0;
cout << "能同时被3和5整除的数有:"; for(int i = m; i <= n; i++) { if(i % 3 == 0 && i % 5 == 0) { // 判断是否同时满足条件 cout << i << " "; // 输出满足条件的数 count++; // 计数器加1 } } cout << "\n共找到" << count << "个数" << endl; return 0; } ``` 🔬 **实验43:数字特征分析** ``` 描述: 统计一个正整数中包含多少个指定的数字。 输入: 1. 一个正整数num 2. 要统计的数字digit(0-9之间) 输出: 这个数字在该正整数中出现的次数 样例输入: 11325 1 样例输出: 数字1出现了2次 解题思路: 1. 不断取出数字的个位(用%10) 2. 判断个位是否是要找的数字 3. 去掉个位(用/10) 4. 重复以上步骤直到数字变为0 ``` ```cpp #include
using namespace std;

int main() {
int num, digit;
cout << "请输入一个正整数:"; cin >> num;
cout << "请输入要统计的数字(0-9):"; cin >> digit;

int count = 0;
int temp = num; // 用临时变量存储原始数字

for(; temp > 0; temp /= 10) { // 注意这里for循环的特殊写法
if(temp % 10 == digit) { // 判断个位是否是要统计的数字
count++;
}
}

cout << "数字" << digit << "出现了" << count << "次" << endl; return 0; } ``` "看到了吗?for循环的三个部分都不是必需的。在上面的例子中,我们省略了初始化部分,因为temp已经在循环外初始化了。" 🔬 **实验44:完美数判断** ``` 描述: 判断一个数是否是完美数(等于除自身外所有因数的和)。 例如:6 = 1 + 2 + 3,6就是一个完美数。 输入: 一个正整数n 输出: 是否为完美数,如果是,输出所有因数 样例输入: 6 样例输出: 6的因数有:1 2 3 6是完美数! 解题思路: 1. 用for循环找出所有因数 2. 累加除了自身外的所有因数 3. 判断因数和是否等于原数 ``` ```cpp #include
using namespace std;

int main() {
int n;
cout << "请输入一个正整数:"; cin >> n;

int sum = 0;
cout << n << "的因数有:"; for(int i = 1; i < n; i++) { // 遍历可能的因数 if(n % i == 0) { // 判断是否为因数 cout << i << " "; // 输出因数 sum += i; // 累加因数 } } cout << endl; if(sum == n) { // 判断是否为完美数 cout << n << "是完美数!" << endl; } else { cout << n << "不是完美数。" << endl; } return 0; } ```