统计数字问题

 

 

统计数字问题

 

问题描述


一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,3,4,5,6,7,8,9。

 

输入

共一行,输入书的页数n

 

输出

共10行,第一行代表数字0出现的个数,第二行代表数字1出现的个数。。。。。

 

方法一:暴力法

#include<iostream>
using namespace std;
int main()
{
	int c[10]={0};//用一维数组存储0~9出现的次数,初始值都为0 
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int tmp=i;//用tmp代表页数,从第一页开始,一直到第n页 
		while(tmp)
		{
			c[tmp%10]++;//例如tmp=10,则tmp%10为0,0的个数加一 
			tmp/=10;//然后10/10为1,循环后1的个数加一 
		}
	}
	for(int i=0;i<10;i++)
	{
		cout<<c[i]<<endl;
	}
	return 0;
 } 

  

 

posted @ 2020-12-22 16:54  CannedDream  阅读(303)  评论(0编辑  收藏  举报