본문 바로가기

재귀함수

(4)
[EP 077] 소수의 합으로 나타내는 경우의 수 오일러 프로젝트 77번 문제. 10을 소수들의 합으로 나누는 경우의 수는 다음과 같이 다섯가지이다. 7+3 5+5 5+3+2 3+3+2+2 2+2+2+2+2 소수들의 합으로 나누는 경우의 수가 처음으로 5000을 넘는 수는 무엇인가? from typing import Set, Dict from functools import lru_cache from pprint import pprint primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] @lru_cache() def summations(n: int) -> Set: # print(">"*depth + str(n)) # ..
[Python] Turtle 로 프랙탈 트리 그리기 python turtle 로 프랙탈 트리를 그려 봤다. import turtle def tree(length, depth=0): if depth < 4: depth += 1 nlength = length * (0.7 ** depth) t.forward(length) t.left(60) tree(nlength, depth) t.right(30) tree(nlength, depth) t.right(30) tree(nlength, depth) t.right(30) tree(nlength, depth) t.right(30) tree(nlength, depth) t.left(60) t.backward(length) t = turtle.Turtle() t.left(90) t.color("green") t.speed..
nCr 캐시된 재귀함수로 구하기 Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)] on win32Type "copyright", "credits" or "license()" for more information.>>> def nCr(n, r):if r in (n, 0);SyntaxError: invalid syntax>>> @functools.lur_cache(maxsize=200, typed=False)def nCr(n, r):if r in (n, 0):return 1return nCr(n-1, r-1) + nCr(n-1, r) Traceback (most recent call last): File "", line 1, in @fu..
[ProjectEuler 206] 1_2_3_4_5_6_7_8_9_0 = n*n 인 유일한 n구하기. #!/usr/bin/env python ''' for x in xrange(101010101, 138902663): if xx % 10 != 7 or xx % 10 != 3: continue xx = 10*x s = str(xx*xx) # print s # print "1_2_3_4_5_6_7_8_9_0" MeetCondition=True for i in xrange(1, 10): if s[2*(i-1)] != str(i): MeetCondition=False break if MeetCondition: print xx*xx, xx print "1_2_3_4_5_6_7_8_9_0" ''' s = "1_2_3_4_5_6_7_8_9_0" def GetList(lst, length): if length == 9..