算法实现题 1-1 统计数字问题
问题描述: 一本书的页码从自然数 1 开始顺序编码直到自然数 n。书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字 0。例如,第 6 页用数字 6 表示,而不是 06 或 006 等。数 字计数问题要求对给定书的总页码 n,计算出书的全部页码中分别用到多少次数字 0,1, 2,…,9。
编程任务: 给定表示书的总页码的 10 进制整数 n (1≤n≤109 ) 。编程计算书的全部页码中分别用 到多少次数字 0,1,2,…,9。
数据输入:给出表示书的总页码的整数 n。
结果输出: 程序运行结束时,在第 k 行 输出页码中用到数字 k-1 的次数,k=1,2,…,10。
输入样例:
11
输出样例
0:1
1:4
2:1
3:1
4:1
5:1
6:1
7:1
8:1
9:1
1.暴力法 简单易理解
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int a[10]={
0};
for(int i=1;i<=n;i++)
{
int x=i;
while(x)
{
a[x%10]++;
x=x/10;
}
}
for(int i=0;i<=9;i++)
{
cout<< i << ":" << a[i] << endl;