되는대로 살자

[C언어 기출문제&풀이] dream counting 본문

2009~2014/C/C++

[C언어 기출문제&풀이] dream counting

malu 2010. 11. 14. 18:58

프로그램 명: dream_counting
제한시간: 1 초
[문제 요약] 두 정수 M, N 을 입력으로 받아 M 부터 N 까지의 각 자리수의 빈도수 합을 구하는 것이 문제이다.

예를 들어 , 129 와 137 이 주어지면 , 129, 130, 131, 132, 133, 134, 135, 136, 137

1 번의 0 , 10 번의 1 , ....

1x0 1x5
10x1 1x6
2x2 1x7
9x3 0x8
1x4 1x9

입력

두 정수 M , N 이 입력으로 주어진다. (1 <= M <= N <= 2,000,000,000 , N-M <= 500,000)

출력

0 부터 9 까지의 빈도 수를 출력한다.

입출력 예

입력

129 137

출력

1 10 2 9 1 1 1 1 0 1
출처:usaco
소스코드 
#include <stdio.h>
int main()
{
 long m,n,bin[10]={0,},temp,i;
 scanf("%d %d",&m,&n);
 for(i=m;i<=n;i++)
 {
  temp=i;
  for(;temp>=1;)
  {
   bin[temp%10]++;
   temp/=10;
  }
 }
 for(i=0;i<10;i++)
  printf("%d ",bin[i]);
}