#43 Problem
** Gedanken ** Ich konnte es während des Wettbewerbs nicht lösen. Ich denke, dieses Problem ist schwierig, weil ich den Code zum Generieren der Run-Run-Nummern nicht schreiben kann. Ich konnte auch nicht schreiben. Dem Kommentar zufolge scheint der Rest geteilt durch 10 und 9 zu beachten. Wenn der Rest der Division von $ x $ durch 10 0 ist, wird die Einerstelle zu 0 und die Anzahl der Laufläufe, die generiert werden können, nimmt ab. In ähnlicher Weise verringert sich die Anzahl der Laufläufe, die erzeugt werden können, wenn der Rest der Division von $ x $ durch 9 0 ist. Denn wenn die Einerstelle 0 ist, gibt es nur 0 und 1 Run-Run-Nummern, so dass der Unterschied zwischen benachbarten Nummern 1 ist. Selbst wenn es 9 ist, gibt es nur 8 und 9. Wenn Sie organisieren, welche Art von Run-Run-Nummer für jede generiert wird,
x != 0 mod(10) → 10x+(x%10)-1
x != 9 mod(10) → 10x+(x%10)+1
Es wird sein. Wenn Sie dies implementieren
from collections import deque
k = int(input())
lun = deque([])
for i in range(1,10):
lun.append(i)
for i in range(k):
x = lun.popleft()
if x % 10 != 0:
lun.append(10*x+(x%10)-1)
lun.append(10*x+x%10)
if x % 10 != 9:
lun.append(10*x+(x%10)+1)
print(x)
Ich verwende deque, weil ich nur auf beide Enden der Daten zugreife
Ich wollte es in der Produktion lösen. Ich bin nicht gut darin, den Rest zu berechnen, also werde ich mich um das ganzzahlige Problem kümmern. wir sehen uns.
Recommended Posts