def recur(s,cnt, n):
print(s*cnt+'"재귀함수가 뭔가요?"')
if cnt==n:
print(s*cnt+'"재귀함수는 자기 자신을 호출하는 함수라네"')
else:
print(s*cnt+'"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.')
print(s*cnt+"마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.")
print(s*cnt+'그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."')
recur('____',cnt+1,n)
print(s*cnt+"라고 답변하였지.")
n=int(input())
cnt=0
s='____'
print(s*cnt+"어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.")
recur(s,cnt,n)
접근방법
'"문자열"'
와 같이 사용한다.재귀함수를 정의해준다. 함수의 인자로는 s('____'), cnt(s에 곱할 수), n(반복 횟수)가 들어간다.
2. '"재귀함수가 뭔가요?"'
라는 문장은 마지막까지 매번 반복되므로 함수의 첫 부분에서 출력해준다.
3. 이후 cnt과 n이 같아지면 마지막이라는 뜻이므로, print(s*cnt+'"재귀함수는 자기 자신을 호출하는 함수라네"')
를 출력해준다. 이때, 언더바*cnt를 해주어야 횟수만큼 출력할 수 있다.
s*cnt+"라고 답변하였지."
를 제외한나머지를 출력해준다. 그리고 recur함수를 재귀 호출한다.print(s*cnt+"라고 답변하였지.")
라는 문장은 맨 마지막에 호출되므로 재귀함수를 호출하고 난 후에 출력해준다.6."어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다."
라는 문장은 가장 처음에 딱 1번 호출되므로 재귀함수 호출 전에 출력해준다.