#include <stdio.h>
#include <math.h>
#define ll long long
ll res[10]={};
ll cnt[10][2] = {}; //10^len ~ 10^(len+1)-1 까지의 숫자에서 0~9 사용 개수
void f() {
int len=0;
double POW=pow(10, len-1);
while(len<10) {
ll val = 9*len*POW, val2 = val+POW*10;
cnt[len][0] += val;
cnt[len][1] = val2;
len++; POW*=10;
//printf("%d, %lf : %lld %lld\n", len, POW, cnt[len][0], cnt[len][1]);
}
}
int main() {
int n;
scanf("%d", &n);
f();
int len=0; //10^len
while(n>pow(10, len)) {
if(pow(10, len)< n && n<pow(10, len+1)) break; //이러면 애먼 9999 도 걸리는데..
res[0] += cnt[len][0];
for(int i=1; i<10; i++) res[i] += cnt[len][2];
len++;
}
//나의 의도는 100부터는 100-999에 걸리도록 하는 것이었는데 101부터 파훼..
while(n>=pow(10, len)) {
int k=n;
while(k) {
res[k%10]++;
k/=10;
}
n--;
}
for(int i=0; i<10; i++) printf("%lld ", res[i]);
}
Pour intégrer ce projet à votre site web, copiez le code suivant et collez-le dans le HTML de votre site web :