파이썬 0
eariler를 게시했지만 조건을 사용했습니다. 조건부와 토큰을 사용하지 않고 키워드 만 사용합니다.
def g(x): return ([[lambda : g(sum(int(y) for y in list(str(x)))),lambda: 0][[False,True].index(x in[0,1,2,4,5,7,8])], lambda: 1][[False,True].index((lambda y: y in[3,6,9])(x))])()
3의 배수에 3을 더하는 숫자가 있다는 트릭을 사용합니다.
편집 : 불필요한 람다 제거
def g(x):return([[lambda: g(sum(int(y) for y in list(str(x)))),lambda:0][[False,True].index(x in[0,1,2,4,5,7,8])], lambda:1][[False,True].index(x in[3,6,9])])()
편집 : 추가 골프 (117 자) 여전히 토큰 없음
exec"g=`x:(((`:g(sum(int(y)for y in str(x)),`:0)[x in[0,1,2,4,5,7,8]],`:1)[x in[3,6,9]])()".replace('`','lambda ')
132 자에서 Python의 멋진 getitem에 대한 직접 액세스 권한이 중단 되었습니다.
exec"g={0}x:((({0}:g(sum(int(y)for y in str(x))),{0}:0{1}0,1,2,4,5,7,8]),{0}:1{1}3,6,9]))()".format('lambda ',').__getitem__(x in[')
http://www.codeskulptor.org/#user34_uUl7SwOBJb_0.py