返回 课程

模板 信奥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 主题|小节
课 13, 主题|小节 1
进行中

13 while循环的简单条件输出

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

### 6.1.3 简单条件输出

🔬 **实验4:2的倍数**

“`
描述:
小朋友们在学习2的乘法表,帮他们找出1到n中所有2的倍数。

输入:
一个正整数n

输出:
1到n中所有2的倍数,用空格分隔

样例输入:
10

样例输出:
2 4 6 8 10

解题思路:
1. 从2开始(第一个2的倍数)
2. 每次加2得到下一个2的倍数
3. 直到超过n为止
“`

“`cpp
#include
using namespace std;

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

int i = 2; // 从2开始
while(i <= n) { cout << i << " "; // 输出当前数字 i += 2; // 每次加2 } cout << endl; return 0; } ``` 🔬 **实验5:3的倍数** ``` 描述: 小朋友们在学习3的乘法表,帮他们找出1到n中所有3的倍数。 输入: 一个正整数n 输出: 1到n中所有3的倍数,用空格分隔 样例输入: 12 样例输出: 3 6 9 12 解题思路: 1. 从3开始(第一个3的倍数) 2. 每次加3得到下一个3的倍数 3. 直到超过n为止 ``` ```cpp #include
using namespace std;

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

int i = 3; // 从3开始
while(i <= n) { cout << i << " "; // 输出当前数字 i += 3; // 每次加3 } cout << endl; return 0; } ``` 🔬 **实验6:统计3的倍数个数** ``` 描述: 帮小朋友们数一数1到n之间有多少个3的倍数。 输入: 一个正整数n 输出: 1到n中3的倍数的个数 样例输入: 12 样例输出: 4(因为1到12中有4个3的倍数:3,6,9,12) 解题思路: 1. 用一个计数器count记录找到的3的倍数个数 2. 遍历1到n的每个数 3. 判断每个数是否能被3整除 4. 能被3整除就将count加1 ``` ```cpp #include
using namespace std;

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

int i = 1, count = 0; // 初始化计数器
while(i <= n) { if(i % 3 == 0) { // 判断是否为3的倍数 count++; // 是3的倍数就计数加1 } i++; } cout << "1到" << n << "中能被3整除的数有" << count << "个" << endl; return 0; } ``` 🔬 **实验7:计算奇数和** ``` 描述: 小朋友们在学习奇数,让我们一起计算1到n之间所有奇数的和。 输入: 一个正整数n 输出: 1到n中所有奇数的和 样例输入: 7 样例输出: 16 (1+3+5+7=16) 解题思路: 1. 用一个变量sum记录和 2. 方法一:遍历每个数,判断是否为奇数 3. 方法二:直接遍历奇数(i=1, i+=2) ``` ```cpp // 方法一:while循环 + if判断 #include
using namespace std;

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

int i = 1, sum = 0;
while(i <= n) { if(i % 2 == 1) { // 判断是否为奇数 sum += i; // 是奇数就加到sum中 } i++; } cout << "1到" << n << "中所有奇数的和是:" << sum << endl; return 0; } ``` 🔬 **实验8:特殊数字统计** ``` 描述: 小明发现了一个有趣的问题:有些数字是7的倍数,或者个位数是7。让我们找出1到n中所有这样的数! 输入: 一个正整数n 输出: 1到n中所有是7的倍数或个位是7的数 样例输入: 30 样例输出: 符合条件的数有:7 14 17 21 27 28 总共有6个数 解题思路: 1. 遍历1到n的每个数 2. 判断两个条件: - 是7的倍数(i % 7 == 0) - 个位是7(i % 10 == 7) 3. 满足任意一个条件就输出 4. 用计数器记录找到的数的个数 ``` ```cpp #include
using namespace std;

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

int i = 1, count = 0;
cout << "符合条件的数有:"; while(i <= n) { if(i % 7 == 0 || i % 10 == 7) { // 判断是否是7的倍数或个位是7 cout << i << " "; count++; } i++; } cout << "\n总共有" << count << "个数" << endl; return 0; } ``` 🔬 **实验9:奇数求和** ``` 描述: 小红想知道1到n之间所有奇数的和是多少。 输入: 一个正整数n 输出: 1到n中所有奇数的和 样例输入: 10 样例输出: 奇数之和为:25 (1+3+5+7+9=25) 解题思路: 1. 使用while循环遍历1到n 2. 用if判断是否为奇数 3. 用sum记录奇数的和 ``` ```cpp #include
using namespace std;

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

int i = 1, sum = 0;

while(i <= n) { if(i % 2 == 1) { // 判断是否为奇数 sum += i; // 累加奇数 } i++; } cout << "奇数之和为:" << sum << endl; return 0; } ``` 🔬 **实验10:特殊倍数的和** ``` 描述: 求1到n之间所有是2的倍数但不是3的倍数的数的总和。 输入: 一个正整数n 输出: 符合条件的数的和 样例输入: 12 样例输出: 符合条件的数有:2 4 8 10 这些数的和是:24 解题思路: 1. 遍历1到n的每个数 2. 判断是否同时满足: - 是2的倍数(i % 2 == 0) - 不是3的倍数(i % 3 != 0) 3. 用sum累加符合条件的数 ``` ```cpp #include
using namespace std;

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

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

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

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

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

int i = m;
int count = 0, sum = 0;
cout << "符合条件的数有:"; while(i <= n) { if(i % 7 == 0 || i % 10 == 7) { cout << i << " "; count++; sum += i; } i++; } cout << "\n共找到" << count << "个数" << endl; cout << "这些数的和是:" << sum << endl; return 0; } ``` "看,小朋友们,我们不仅可以找出特定的数,还可以数一数它们有多少个!"