예시 (별 출력):
def recursion(num):
if num > 0:
print('*' * num)
return recursion(num - 1) # 자기 자신 호출
else:
return 1
실행 결과:
*****
****
***
**
*
def gcd(n1, n2):
if n2 == 0: # 나누어떨어지면
return n1 # n1이 최대공약수
else:
return gcd(n2, n1 % n2) # 재귀 호출
print(gcd(192, 162)) # 6
def hanoi(n, start, via, end):
if n == 1:
print(f"Move disk 1 from {start} → {end}")
else:
hanoi(n-1, start, end, via) # n-1개를 보조 기둥으로
print(f"Move disk {n} from {start} → {end}") # 가장 큰 원판 이동
hanoi(n-1, via, start, end) # 보조 기둥 → 목표 기둥
# 실행 예시 (원판 3개)
hanoi(3, 'A', 'B', 'C')
Move disk 1 from A → C
Move disk 2 from A → B
Move disk 1 from C → B
Move disk 3 from A → C
Move disk 1 from B → A
Move disk 2 from B → C
Move disk 1 from A → C