编写一个C++程序,解决关于图书页码的问题:当书籍的总页数为n时,统计从第1页到第n页的编码中,每个数码(0-9)分别出现的次数。
时间: 2024-10-24 15:12:05 浏览: 27
在C++中,你可以通过遍历每一页,并记录每个数字出现的次数来解决这个问题。以下是一个简单的示例程序:
```cpp
#include <iostream>
#include <vector>
std::vector<int> countDigits(int n) {
std::vector<int> counts(10, 0); // 数字0到9的计数
int currentPage = 1; // 当前页码
while (currentPage <= n) {
// 获取当前页码的每一位数字
int digit = currentPage % 10;
counts[digit]++;
// 更新当前页码,移除最低位
currentPage /= 10;
}
return counts;
}
int main() {
int bookPages;
std::cout << "请输入书籍的总页数: ";
std::cin >> bookPages;
std::vector<int> digitCounts = countDigits(bookPages);
std::cout << "每个数码出现的次数分别为: \n";
for (int i = 0; i < 10; i++) {
std::cout << "数码 " << i << ": " << digitCounts[i] << '\n';
}
return 0;
}
```
在这个程序中,我们首先初始化一个大小为10的数组,用于存储0到9的计数。然后,对于每一本书的页面,我们将当前页码除以10取余数,得到最低位的数字,并增加相应的计数。接着,我们把页码除以10以去掉最低位,继续处理下一位。最后,我们打印出每个数码的出现次数。
阅读全文