Ich habe versucht, das 755 C-Problem von AtCoder in Python zu lösen. Dies ist ein leicht zu lösendes Problem, das mit einer rekursiven Funktion gelöst werden kann.
Ich bezog mich auf einen Artikel von Herrn Kencho, der in der japanischen Welt der Wettbewerbsprogramme bekannt ist. Referenzartikel: https://drken1215.hatenablog.com/entry/2019/04/03/125400
Es ist immer noch umständlich, daher fiel es mir schwer, den Unterschied zwischen einem logischen Operator und einem Bitoperator zu verstehen. Klicken Sie hier für Artikel, die mir geholfen haben, diese ↓ zu verstehen http://ings.sakura.ne.jp/prog/bitoperator.html
N = int(input())
def func(cur, use, counter):
if cur > N: return
if use == 0b111: counter.append(1) #Erhöhen Sie die Antwort
#Addiere 7
func(cur * 10 + 7, use | 0b001, counter)
#Addiere 5
func(cur * 10 + 5, use | 0b010, counter)
#Addiere 3
func(cur * 10 + 3, use | 0b100, counter)
res = []
func(0, 0, res)
print(sum(res))
Das Ergebnis sieht so aus. Ich konnte sicher AC.
Recommended Posts