C++ 统计数字 1 的个数 - 算法题解
C++ 统计数字 1 的个数
题目描述
给定一个十进制正整数 n (1≤n≤10000),写下从 1 到 n 的所有整数,然后数一下其中出现的数字 '1' 的个数。
例如当 n=2 时,写下 1,2。这样只出现了 1 个 '1';当 n=12 时,写下 1,2,3,4,5,6,7,8,9,10,11,12。这样出现了 5 个 '1'。
输入描述
正整数 n。1 ≤ n ≤ 10000。
输出描述
一个正整数,即 '1' 的个数。
用例输入 1
12 用例输出 1
5
C++ 代码实现
#include <iostream>
#include <string>
using namespace std;
int countOnes(int n) {
int count = 0;
for (int i = 1; i <= n; i++) {
string num = to_string(i);
for (char c : num) {
if (c == '1') {
count++;
}
}
}
return count;
}
int main() {
int n;
cin >> n;
int result = countOnes(n);
cout << result << endl;
return 0;
}
代码解析
- 使用
countOnes函数进行统计。 - 循环遍历从 1 到 n 的所有整数。
- 使用
to_string函数将整数转换为字符串。 - 循环遍历字符串中的每个字符,判断是否为 '1',如果是则计数器
count加 1。 - 最后返回计数器
count的值。
总结
本算法题通过循环遍历每个整数并判断数字 '1' 的出现次数来实现统计。代码简洁易懂,适合初学者学习和练习。
原文地址: https://www.cveoy.top/t/topic/qiLH 著作权归作者所有。请勿转载和采集!