题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝要为一条街的住户制作门牌号。
这条街一共有 2020 位住户,门牌号从 1 到 2020编号。
小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1个字符 7。
请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
总通过次数: 59694 | 总提交次数: 61954 | 通过率: 96.4%
难度: 中等 标签: 2020, 模拟, 枚举, 省赛
代码:
#include <iostream>
#include <string> // 包含处理字符串的库
int main() {
int ans = 0; // 初始化一个计数器,用于记录字符 '2' 出现的总次数
// 遍历从 1 到 20202020 的所有数字
for (int i = 1; i <= 2020; ++i) {
std::string str = std::to_string(i); // 将当前数字转换为字符串形式
// 遍历字符串中的每一个字符
for (char c : str) {
if (c == '2') ans++; // 如果字符是 '2',则计数器加1
}
}
// 输出结果,显示字符 '2' 出现的总次数
std::cout << ans << std::endl;
return 0; // 返回 0 表示程序正常结束
}