문제
이거 꺼무에 나왔던 드립인데…
이걸 코딩하면 된다.
참고문헌
https://yoonsang-it.tistory.com/51
풀이
일단 기본 골자는
def factorial(n):
if n == 0:
return 1
return n * factorial(n-1)
이놈이랑 비슷하다. (저건 재귀함수로 계승 짠 거) 이제 문장 위치와 함수 위치가 중요하지…
n = int(input())
print('어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.')
def whatisrecursion(k):
print('재귀함수가 뭔가요?')
if k == 0:
print('"재귀함수는 자기 자신을 호출하는 함수라네"')
print('라고 답변하였지.')
return
print('"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.')
print('마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.')
print('그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."')
whatisrecursion(k - 1)
print('라고 답변하였지.')
whatisrecursion(n)
아직 내지 맙시다. 언더바 남았어요.
어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.
"재귀함수가 뭔가요?"
"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.
마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.
그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."
____"재귀함수가 뭔가요?"
____"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.
____마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.
____그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."
________"재귀함수가 뭔가요?"
________"재귀함수는 자기 자신을 호출하는 함수라네"
________라고 답변하였지.
____라고 답변하였지.
라고 답변하였지.
이건 2에 대한 예시 출력인데, 언더바가 8개까지 붙어있는 게 있다. 함수를 총 세 번 호출하게 되고, 호출할때마다 언더바가 추가되는 식인데 4n꼴로 붙는다. 어? 그럼 그냥 k 곱하면 안되요? 그러면 밖에 있는 놈이 언더바가 제일 길어진다.
def whatisrecursion(k):
print('_' * 4 * (n - k) + '"재귀함수가 뭔가요?"')
if k == 0:
print('_' * 4 * (n - k) + '"재귀함수는 자기 자신을 호출하는 함수라네"')
print('_' * 4 * (n - k) + '라고 답변하였지.')
return
print('_' * 4 * (n - k) + '"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.')
print('_' * 4 * (n - k) + '마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.')
print('_' * 4 * (n - k) + '그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."')
whatisrecursion(k - 1)
print('_' * 4 * (n - k) + '라고 답변하였지.')
n = int(input())
print('어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.')
whatisrecursion(n)
일단 이게 답이다. 근데 정답률 망했고…
- print(‘_’ * 4 * (n – k) + ‘라고 답변하였지.’) 에 +를 ,로 바꾸면 쓸데없는 공백이 붙는다.
- print(‘_’ * 4 * (n – k) + ‘”재귀함수가 뭔가요?”‘) <<여기 따옴표 빼먹었다.
Reply