返回 课程

模板 信奥AC之路(第一级)

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 主题|小节
课 17, 主题|小节 3
进行中

17.3 for循环计数练习

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

“小朋友们,我们不仅要会输出数字,还要学会数一数特定的数字有多少个!”

🔬 **实验30:倍数统计**

“`
描述:
统计1到n中有多少个k的倍数。

输入:
两个正整数n和k

输出:
1到n中k的倍数的个数

样例输入:
20 4

样例输出:
1到20中4的倍数有5个(4,8,12,16,20)

解题思路:
1. 用计数器count记录找到的倍数个数
2. 遍历1到n的每个数
3. 判断是否能被k整除
4. 能整除就计数加1
“`

“`cpp
#include
using namespace std;

int main() {
int n, k;
cout << "请输入n和k:"; cin >> n >> k;

int count = 0;
for(int i = 1; i <= n; i++) { if(i % k == 0) { // 判断是否为k的倍数 count++; // 计数器加1 } } cout << "1到" << n << "中" << k << "的倍数有" << count << "个" << endl; return 0; } ``` "小朋友们,我们已经学会了用for循环做一些基本的练习,现在让我们来挑战一些更有趣的问题!" 🔬 **实验31:特殊数字统计(for版)** ``` 描述: 用for循环找出1到n中所有是7的倍数或个位是7的数。 输入: 一个正整数n 输出: 1到n中所有是7的倍数或个位是7的数 样例输入: 30 样例输出: 符合条件的数有:7 14 17 21 27 28 总共有6个数 解题思路: 1. 使用for循环遍历1到n 2. 判断每个数是否: - 是7的倍数 或 - 个位是7 3. 用计数器记录符合条件的数的个数 ``` ```cpp #include
using namespace std;

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

int count = 0;
cout << "符合条件的数有:"; for(int i = 1; i <= n; i++) { if(i % 7 == 0 || i % 10 == 7) { cout << i << " "; count++; } } cout << "\n总共有" << count << "个数" << endl; return 0; } ``` 🔬 **实验32:奇数求和(for版)** ``` 描述: 用for循环计算1到n之间所有奇数的和。 输入: 一个正整数n 输出: 1到n中所有奇数的和 样例输入: 10 样例输出: 奇数之和为:25 (1+3+5+7+9=25) 解题思路: 1. 方法一:遍历所有数,判断奇数 2. 方法二:直接遍历奇数(i+=2) ``` ```cpp #include
using namespace std;

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

int sum = 0;

// 方法二:直接遍历奇数
for(int i = 1; i <= n; i += 2) { sum += i; } cout << "奇数之和为:" << sum << endl; return 0; } ``` 🔬 **实验33:特殊倍数和(for版)** ``` 描述: 用for循环求1到n之间所有是2的倍数但不是3的倍数的数的和。 输入: 一个正整数n 输出: 符合条件的数及其和 样例输入: 12 样例输出: 符合条件的数有:2 4 8 10 这些数的和是:24 解题思路: 1. 用for循环遍历1到n 2. 用两个条件判断是否符合要求: - 能被2整除 - 不能被3整除 3. 累加符合条件的数 ``` ```cpp #include
using namespace std;

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

int sum = 0;
cout << "符合条件的数有:"; for(int i = 1; i <= n; i++) { if(i % 2 == 0 && i % 3 != 0) { cout << i << " "; sum += i; } } cout << "\n这些数的和是:" << sum << endl; return 0; } ``` 🔬 **实验34:特定个位数和(for版)** ``` 描述: 用for循环求1到n之间所有个位数是5或8的数的和。 输入: 一个正整数n 输出: 符合条件的数及其和 样例输入: 30 样例输出: 符合条件的数有:5 8 15 18 25 28 这些数的和是:99 解题思路: 1. 用for循环遍历1到n 2. 取每个数的个位 3. 判断个位是否为5或8 4. 累加符合条件的数 ``` ```cpp #include
using namespace std;

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

int sum = 0;
cout << "符合条件的数有:"; for(int i = 1; i <= n; i++) { if(i % 10 == 5 || i % 10 == 8) { cout << i << " "; sum += i; } } cout << "\n这些数的和是:" << sum << endl; return 0; } ``` 🔬 **实验35:区间特征数统计(for版)** ``` 描述: 用for循环求m到n之间所有是7的倍数或个位是7的数的和及个数。 输入: 两个正整数m和n(m < n) 输出: 符合条件的数的和及个数 样例输入: 10 50 样例输出: 符合条件的数有:14 17 21 27 28 35 37 42 47 49 共找到10个数 这些数的和是:317 解题思路: 1. 用for循环遍历m到n 2. 用count计数,sum求和 3. 判断每个数是否: - 是7的倍数 或 - 个位是7 ``` ```cpp #include
using namespace std;

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

int count = 0, sum = 0;
cout << "符合条件的数有:"; for(int i = m; i <= n; i++) { if(i % 7 == 0 || i % 10 == 7) { cout << i << " "; count++; sum += i; } } cout << "\n共找到" << count << "个数" << endl; cout << "这些数的和是:" << sum << endl; return 0; } ```