#include <stdio.h>
int main(){
int page;
int base = 1; // 현재 자릿수의 기준
int total = 0; // 각 자릿수마다 특정 숫자가 등장하는 총 횟수
while (page / base != 0) {
int quotient = page / (base * 10); // 현재 자릿수보다 왼쪽에 있는 숫자의 개수
int remainder = page % (base * 10); // 현재 자릿수의 오른쪽 숫자
// 현재 자릿수보다 왼쪽에 있는 숫자의 개수를 이용하여 각 자릿수에서 특정 숫자가 등장하는 횟수를 계산
total += quotient * base; // 현재 자릿수보다 왼쪽에 있는 숫자가 등장하는 횟수
// 현재 자릿수에서 특정 숫자가 등장하는 횟수 계산
if (remainder / base == 1) {
total += page % base + 1; // 현재 자릿수에서 특정 숫자가 등장하는 횟수
} else if (remainder / base > 1) {
total += base; // 현재 자릿수보다 왼쪽에 있는 숫자들이 특정 숫자로 모두 등장하는 경우
}
base *= 10; // 다음 자릿수로 이동
}
// 각 숫자의 등장 횟수 출력
for (int i = 0; i < 10; i++) {
int count = total; // 각 숫자의 등장 횟수
if (i == 0) {
count -= base / 10; // 첫 번째 자릿수에서 0이 등장하는 횟수는 제외
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpewogICAgaW50IHBhZ2U7CiAgICBzY2FuZigiJWQiLCAmcGFnZSk7CiAgICAKICAgIGludCBiYXNlID0gMTsgLy8g7ZiE7J6sIOyekOumv+yImOydmCDquLDspIAKICAgIGludCB0b3RhbCA9IDA7IC8vIOqwgSDsnpDrpr/siJjrp4jri6Qg7Yq57KCVIOyIq+yekOqwgCDrk7HsnqXtlZjripQg7LSdIO2an+yImAogICAgCiAgICB3aGlsZSAocGFnZSAvIGJhc2UgIT0gMCkgewogICAgICAgIGludCBxdW90aWVudCA9IHBhZ2UgLyAoYmFzZSAqIDEwKTsgLy8g7ZiE7J6sIOyekOumv+yImOuztOuLpCDsmbzsqr3sl5Ag7J6I64qUIOyIq+yekOydmCDqsJzsiJgKICAgICAgICBpbnQgcmVtYWluZGVyID0gcGFnZSAlIChiYXNlICogMTApOyAvLyDtmITsnqwg7J6Q66a/7IiY7J2YIOyYpOuluOyqvSDsiKvsnpAKICAgICAgICAKICAgICAgICAvLyDtmITsnqwg7J6Q66a/7IiY67O064ukIOyZvOyqveyXkCDsnojripQg7Iir7J6Q7J2YIOqwnOyImOulvCDsnbTsmqntlZjsl6wg6rCBIOyekOumv+yImOyXkOyEnCDtirnsoJUg7Iir7J6Q6rCAIOuTseyepe2VmOuKlCDtmp/siJjrpbwg6rOE7IKwCiAgICAgICAgdG90YWwgKz0gcXVvdGllbnQgKiBiYXNlOyAvLyDtmITsnqwg7J6Q66a/7IiY67O064ukIOyZvOyqveyXkCDsnojripQg7Iir7J6Q6rCAIOuTseyepe2VmOuKlCDtmp/siJgKICAgICAgICAKICAgICAgICAvLyDtmITsnqwg7J6Q66a/7IiY7JeQ7IScIO2KueyglSDsiKvsnpDqsIAg65Ox7J6l7ZWY64qUIO2an+yImCDqs4TsgrAKICAgICAgICBpZiAocmVtYWluZGVyIC8gYmFzZSA9PSAxKSB7CiAgICAgICAgICAgIHRvdGFsICs9IHBhZ2UgJSBiYXNlICsgMTsgLy8g7ZiE7J6sIOyekOumv+yImOyXkOyEnCDtirnsoJUg7Iir7J6Q6rCAIOuTseyepe2VmOuKlCDtmp/siJgKICAgICAgICB9IGVsc2UgaWYgKHJlbWFpbmRlciAvIGJhc2UgPiAxKSB7CiAgICAgICAgICAgIHRvdGFsICs9IGJhc2U7IC8vIO2YhOyerCDsnpDrpr/siJjrs7Tri6Qg7Jm87Kq97JeQIOyeiOuKlCDsiKvsnpDrk6TsnbQg7Yq57KCVIOyIq+yekOuhnCDrqqjrkZAg65Ox7J6l7ZWY64qUIOqyveyasAogICAgICAgIH0KICAgICAgICAKICAgICAgICBiYXNlICo9IDEwOyAvLyDri6TsnYwg7J6Q66a/7IiY66GcIOydtOuPmQogICAgfQogICAgCiAgICAvLyDqsIEg7Iir7J6Q7J2YIOuTseyepSDtmp/siJgg7Lac66ClCiAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsKICAgICAgICBpbnQgY291bnQgPSB0b3RhbDsgLy8g6rCBIOyIq+yekOydmCDrk7HsnqUg7Zqf7IiYCiAgICAgICAgaWYgKGkgPT0gMCkgewogICAgICAgICAgICBjb3VudCAtPSBiYXNlIC8gMTA7IC8vIOyyqyDrsojsp7gg7J6Q66a/7IiY7JeQ7IScIDDsnbQg65Ox7J6l7ZWY64qUIO2an+yImOuKlCDsoJzsmbgKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCIlZCAiLCBjb3VudCk7CiAgICB9CiAgICAKICAgIHJldHVybiAwOwp9Cg==