以下是使用C++实现的算法:

#include <iostream>
#include <vector>

std::vector<int> countDigits(int n) {
    std::vector<int> counts(10, 0); // 初始化一个包含10个元素的向量,初始值为0
    
    for (int i = 1; i <= n; i++) {
        int num = i;
        while (num > 0) {
            int digit = num % 10;
            counts[digit]++;
            num /= 10;
        }
    }
    
    return counts;
}

int main() {
    int n;
    std::cout << "请输入书的总页码数:";
    std::cin >> n;
    
    std::vector<int> digitCounts = countDigits(n);
    
    std::cout << "数字0-9在页码中出现的次数分别为:" << std::endl;
    for (int i = 0; i < 10; i++) {
        std::cout << i << ": " << digitCounts[i] << std::endl;
    }
    
    return 0;
}

使用上述算法,用户可以输入书的总页码数,然后程序将计算并输出数字0-9在页码中出现的次数。

使用cpp简单算法实现一本书的页码从自然数1开始顺序编码到自然数n。书的页码按通常习性编排每个页码都不含多余前导数字0数字计数问题要求对给定书的总页码n计算书的全部页码分别用到多少次数字012……9

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

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