算法实现题1-1

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

算法设计:给定表示书的总页码的十进制整数n(1<=n<=10^9),计算书的全部页码中分别用到多少次数字0,1,2…,9。

#include 
using namespace std;

int main() {
	int n;//书的页数
	int flag;//
	cin>>n;
	int a[10];//记录各数字出现次数
	for(int i=0;i<10;i++)
	{
		a[i]=0;
	}//初始化
	while(n--)
	{
	    int m=n+1;
	    if(m>=10){
	        do{
	             flag=m%10;
	             a[flag]++;
	             m=m/10;
	        }while (m>=10);
	    }//大于=10
	    if (m<10&&m>0){
	        flag=m;
	        a[flag]++;
	    }
	}//小于10
	for(int i=0;i<10;i++)
	{
		cout<

 

你可能感兴趣的:(算法设计与分析)