16. 整数n内含有数字2的小游戏
文章目录
-
- 概要
- 整体架构流程
- 小结
1. 概要
➠ Jack Qiao对米粒说:“今天咱们玩个统计数字小游戏,要求是在一个给定的范围内统计数字 2 出现的次数”
☑ 米粒想到:既然是统计2出现的次数,想到number % 10 == 2然后去掉当前位,继续检查下一位number /= 10;
2. 整体架构流程
2.1. 定义函数
☑ 定义一个函数 countTwos,这个函数的作用是统计一个给定数字中 2 出现的次数。
int countTwos(int number) { int count = 0; // 初始化计数器为 0 while (number > 0) { if (number % 10 == 2) { count++; // 如果当前位是 2,计数器加一 } number /= 10; // 去掉当前位,继续检查下一位 } return count; // 返回计数器的值 }
☑ int countTwos(int number):函数接受一个整数 number 作为参数。
☑ int count = 0;:初始化一个计数器 count 为 0,用于记录 2 出现的次数。
☑ while (number > 0):当 number 大于 0 时,继续循环。
☑ number /= 10;:去掉当前数字的最后一位,继续检查下一位。
☑ if (number % 10 == 2):检查当前数字的最后一位是否为 2,如果是,count 加一。
☑ return count;:返回 count,即当前数字中 2 出现的次数。
2.2. 主函数main
☑ 主函数 main,这个函数负责读取用户输入的正整数 n,并调用 countTwos 函数统计每个数字中 2 出现的次数。
int main() { int n; int totalTwos = 0; // 初始化总计数器为 0 // 输入一个正整数 n printf("请输入一个正整数 n: "); scanf("%d", &n); // 遍历从 1 到 n 的每一个数字 for (int i = 1; i <= n; i++) { totalTwos += countTwos(i); // 调用 countTwos 函数,累加结果 } // 输出结果 printf("在 1 到 %d 之间,数字 2 共出现了 %d 次。\n", n, totalTwos); return 0; }
2.3. 运行结果
2.4. 全部代码
#include<stdio.h>
int countTwos(int number) {
int count = 0; // 初始化计数器为 0
while (number > 0) {
if (number % 10 == 2) {
count++; // 如果当前位是 2,计数器加一
}
number /= 10; // 去掉当前位,继续检查下一位
}
return count; // 返回计数器的值
}
int main() {
int n;
int totalTwos = 0; // 初始化总计数器为 0// 输入一个正整数 n
printf("请输入一个正整数 n: ");
scanf("%d", &n);// 遍历从 1 到 n 的每一个数字
for (int i = 1; i <= n; i++) {
totalTwos += countTwos(i); // 调用 countTwos 函数,累加结果
}// 输出结果
printf("在 1 到 %d 之间,数字 2 共出现了 %d 次。\n", n, totalTwos);return 0;
}
3. 小结
☑ 用户输入一个正整数 n,程序从 1 到 n 遍历每个数字,统计其中数字 2 出现的次数(知识点:使用 for 循环遍历指定范围内的数字)。
☑ 每个数字中 2 的出现次数通过 countTwos 函数计算,并将结果累加到总计数器 totalTwos 中(知识点:函数调用和返回值的使用,以及变量累加)。