“小朋友们,我们不仅要会输出数字,还要学会数一数特定的数字有多少个!”
🔬 **实验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;
}
```