### 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;
}
```
"看,小朋友们,我们不仅可以找出特定的数,还可以数一数它们有多少个!"