디지털 통계 문제
1998 단어 문제.
#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
",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
",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('
');
}
}
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
",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
",data%p+1,p);
sum[high]+=(data%p+1);
//printf("sum[high]%d %d
",sum[high],high);
//printf("%d
",data);
data%=p;
p/=10;
}
//printf("data=%d
",data);
}
디지털 통계 문제
한 권의 책의 페이지 번호는 자연수 1부터 자연수 n까지 순서대로 인코딩된다.책의 페이지 번호는 통상적인 습관에 따라 배열되며, 매 페이지 번호는 여분의 전도 숫자 0을 포함하지 않는다.예를 들어 6페이지는 06이나 006 등이 아닌 숫자 6으로 표시한다.숫자 계수 문제는 주어진 책의 총 페이지 번호 n에 대해 책의 전체 페이지 번호에 각각 몇 번의 숫자 0, 1, 2,..., 9를 사용해야 하는지를 계산해야 한다.
프로그래밍 작업: 책의 전체 페이지 번호를 표시하는 10진수 n(1≤n≤10^9)을 지정합니다.프로그래밍 계산서의 전체 페이지 번호에 0, 1, 2,..., 9를 각각 몇 번을 사용했는가.
입력: 입력마다 한 줄만 있고 책의 전체 페이지 번호를 나타내는 정수 n을 제공합니다.
출력: 프로그램 실행이 끝났을 때 출력은 10줄이 있고 k줄 출력 페이지 번호에서 숫자 k-1을 사용하는 횟수, k=1, 2,..., 10.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
곤혹스러울 때 사용하는 문제 형식의 소개포기할 수 있다면 그것도 방법이지만 일이라면 그렇게 하지 않을 거예요. 모르는 것을 묻기 위해 지식이 있는 사람에게 질문하겠죠. 처음부터 무언가에 대해 알려주면 심리적 모형을 만들어 줄 수 있다. 물어보고 싶은 것을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.