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;
}

代码解析

  1. 使用 countOnes 函数进行统计。
  2. 循环遍历从 1 到 n 的所有整数。
  3. 使用 to_string 函数将整数转换为字符串。
  4. 循环遍历字符串中的每个字符,判断是否为 '1',如果是则计数器 count 加 1。
  5. 最后返回计数器 count 的值。

总结

本算法题通过循环遍历每个整数并判断数字 '1' 的出现次数来实现统计。代码简洁易懂,适合初学者学习和练习。

C++ 统计数字 1 的个数 - 算法题解

原文地址: https://www.cveoy.top/t/topic/qiLH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录