문자열의 길이 계산
string = 'hello'
def length(string):
if string == '': return 0
else : return 1+length(string[1:])
print(length(string))
문자열의 프린트
str='hello'
def printstr(str):
if len(str) == 0: return
print(str[0], end='')
printstr(str[1:])
print(printstr(str))
문자열을 뒤집어 프린트
str='hello'
def printstr(str):
if len(str) == 0: return
print(str[-1], end='')
printstr(str[:-1])
print(printstr(str))
2진수로 변환하여 출력
def printBinary(n):
if n<2: print(n,end='')
else:
printBinary(n//2)
print(n%2,end='') #바닥부터 출력하므로 n%2는 함수 호출보다 밑에 있음
print(printBinary(16))
배열의 합 구하기
nums = [i for i in range(1,101)]
def sum(n,nums):
if n<=0:return 0
else: return sum(n-1,nums) + nums[n-1]
print(sum(len(nums),nums))
모든 순환함수는 반복문으로 변경 가능
그 역도 성립.
순환함수는 복잡한 알고리즘을 단순하고 알기 쉽게 표현하는 것을 가능하게 함.
함수 호출에 따른 오버헤드가 있음 (매개변수 전달, 액티베이션 프레임 생성 등)
출처 : https://www.inflearn.com/course-status-2/
'알고리즘' 카테고리의 다른 글
미로찾기 Maze (0) | 2018.02.01 |
---|---|
순환의 개념과 기본 예제 3 (0) | 2018.02.01 |
순환의 개념과 기본 예제 1 (0) | 2018.01.31 |
종만북 분할 정복 병합 정렬과 퀵 정렬 - 동작 원리와 시간 복잡도 (0) | 2018.01.13 |
종만북 수열의 빠른 합 파이썬 (0) | 2018.01.13 |