使用简单的cpp算法实现一本书的页码从自然数1开始顺序编码到自然数n。书的页码按通常习性编排每个页码都不含多余前导数字0数字计数问题要求对给定书的总页码n计算书的全部页码分别用到多少次数字012……9
以下是使用C++实现的算法:
#include <iostream>
#include <vector>
std::vector<int> countDigits(int n) {
std::vector<int> count(10, 0); // 初始化一个大小为10的向量,用于计数0-9的出现次数
for (int i = 1; i <= n; i++) {
int num = i;
while (num > 0) {
int digit = num % 10;
count[digit]++;
num /= 10;
}
}
return count;
}
int main() {
int n;
std::cout << "请输入书的总页码n: ";
std::cin >> n;
std::vector<int> digitCount = countDigits(n);
std::cout << "书的全部页码分别用到的数字0-9的次数为:" << std::endl;
for (int i = 0; i < 10; i++) {
std::cout << i << ": " << digitCount[i] << std::endl;
}
return 0;
}
输入书的总页码n后,程序将计算书的全部页码分别用到数字0-9的次数,并输出结果。
希望对你有所帮助!
原文地址: https://www.cveoy.top/t/topic/jb6X 著作权归作者所有。请勿转载和采集!