• 数字统计问题


    #include<stdio.h>
    #include<math.h> 
    
    void GetParamater(int a[7][10],int n,int m,int sum0[7]);
    void GetSum(int data,int sum[10],int a[7][10]);
    
    int main(){
    	int a[7][10] ;
    	int data,sum[10],sum0[7];
    
    	GetParamater(a,6,10,sum0);
    	//printf("%lf\n",log10(92345));
    
    	while(scanf("%d",&data)){
    		GetSum(data,sum,a);
    		sum[0]-=sum0[(int)log10(data)+1];
    		for(int x=0;x<10;x++){
    			printf("%d\n",sum[x]);
    		}
    	}
    	
    	return 0;
    }
    
    void GetParamater(int a[7][10],int n,int m,int sum0[7]){
    
    	for(int k=0;k<m;k++)
    		a[0][k] = 0;
    	sum0[0]=0;
    	for(int i=1,temp=1;i<=n;i++){
    		for(int j=0;j<m;j++){
    			a[i][j] = 10*a[i-1][j]+ temp;
    			//printf("%d  ",a[i][j]);
    		}
    		sum0[i]=sum0[i-1]+temp;
    		temp *= 10;
    		//putchar('\n');
    	}
    	 
    }
    
    void GetSum(int data,int sum[10],int a[7][10]){
    	
    	for(int i=0;i<10;i++){
    		sum[i]=0;
    	}
    	
    	while(data!=0){
    		int k = (int)log10(data);
    		//表示最高位是多少!
    		int p = pow(10,k);
    		int high = data/p;
    		//printf("k=%d  p=%d  high=%d\n",k,p,high);
    		for(int x=0;x<high;x++){
    			sum[x]+=p;
    			for(int y=0;y<10;y++){
    				sum[y]+=a[k][y];
    			}
    		}
    		//printf("data/p  = %d   p=%d\n",data%p+1,p);
    		sum[high]+=(data%p+1);
    		//printf("sum[high]%d  %d\n",sum[high],high);
    
    		//printf("%d\n",data);
    		data%=p;
    		p/=10;
    	}
    	//printf("data=%d\n",data);
    }
    

    数字统计问题

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

    编程任务:给定表示书的总页码的10 进制整数n (1≤n≤10^9) 。编程计算书的全部页码中分别用到多少次数字0129

    输入: 每个输入只有1 行,给出表示书的总页码的整数n

    输出: 程序运行结束时,输出有10行,在第k行输出页码中用到数字k-1 的次数,k=1210



  • 相关阅读:
    朴素贝叶斯估计
    k临近法的实现:kd树
    感知机学习算法
    Logistic回归的牛顿法及DFP、BFGS拟牛顿法求解
    Logistic回归
    线性回归的梯度下降和正规方程组求解
    Redis学习笔记(8)-发布/订阅
    Redis学习笔记(7)-事务
    Redis学习笔记(6)-SortedSet
    Redis学习笔记(5)-Set
  • 原文地址:https://www.cnblogs.com/Acmen/p/2246351.html
Copyright © 2020-2023  润新知