<aside> 💡 수학
</aside>
Memory 30616KB Time 60ms Code Length 976B
import sys
input=sys.stdin.readline
def zero(n, size):
ans = n//10
for i in range (1,size):
if n % (10**(i+1)) >= (10**i):
ans += (n // 10**(i+1)) * (10**i)
else:
ans += (n // 10**(i+1)-1) * (10**i) + n %(10**i) + 1
return ans
def other(n, size, type):
if n % 10 >= type:
ans = n//10 + 1
else:
ans = n//10
for i in range(1, size+1):
if n % (10**(i+1)) >= (type+1)*(10**i):
ans += ((n//10**(i+1))+1) * (10**i)
elif n % (10**(i+1)) < type*(10**i):
ans += (n//10**(i+1)) * (10**i)
else:
ans += (n//10**(i+1)) * (10**i) + n%(10**i) + 1
return ans
n = int(input())
n_temp = n
n_size = 0
while n_temp >= 10:
n_temp /= 10
n_size +=1
print(zero(n, n_size), other(n,n_size,1), other(n,n_size,2), other(n,n_size,3), other(n,n_size,4), other(n,n_size,5), other(n,n_size,6), other(n,n_size,7), other(n,n_size,8), other(n,n_size,9))
이 코드는 사용자로부터 입력받은 숫자 n에 대해 0부터 9까지의 각 숫자가 몇 번 등장하는지를 계산하는 프로그램이다.
먼저, 입력받은 숫자 n의 자릿수를 계산한다. 이후 두 가지 함수, zero와 other를 사용하여 0부터 9까지의 숫자가 각각 몇 번 등장하는지를 계산한다.
zero 함수는 숫자 n에서 0이 몇 번 등장하는지를 계산한다. 이는 n을 10으로 나눈 몫을 초기값으로 설정하고, n의 각 자릿수를 확인하면서 0이 등장하는 경우를 세어준다.
other 함수는 숫자 n에서 특정 숫자(1부터 9까지)가 몇 번 등장하는지를 계산한다. 이는 n을 10으로 나눈 몫을 초기값으로 설정하고, n의 각 자릿수를 확인하면서 해당 숫자가 등장하는 경우를 세어준다.
마지막으로, 각 숫자가 몇 번 등장하는지를 출력한다.