ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 재귀
    백준 2022. 5. 24. 18:32

    #1 팩토리얼

    n = int(input())

    b = 1
    def fac(n, b):
        b = b * n
        if n == 1:
            return b
        else:
            n = n-1
            return fac(n, b)

    if n == 0:
        print(1)
    else:
        print(fac(n, b))

     

     

    #3 재귀함수가 뭔가요?

    print('어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.')

    def question(n, a):
        a = a+1
        print("____"*a, '\"재귀함수가 뭔가요?\"', sep='')
        print("____"*a, '\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.', sep='')
        print("____"*a, '마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.', sep='')
        print("____"*a, '그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"', sep='')
        if n == 1:
            print("____"*(a+1), '\"재귀함수가 뭔가요?\"', sep='')
            print("____"*(a+1), '\"재귀함수는 자기 자신을 호출하는 함수라네\"', sep='')
            print("____"*(a+1), "라고 답변하였지.", sep='')
        else:
            question(n-1, a)
        print("____"*a, "라고 답변하였지.", sep='')
        
    n = int(input())
    a = -1
    question(n, a)

     

     

    #4 별 찍기 - 10

    def star(Len):
        if Len == 1:
            return ['*']
        
        Stars = star(Len//3)
        L = list()
        
        for S in Stars:
            L.append(S*3)
        for S in Stars:
            L.append(S+' '*(Len//3)+S)
        for S in Stars:
            L.append(S*3)
        return L

    n = int(input())
    print('\n'.join(star(n)))

    '백준' 카테고리의 다른 글

    백준 6086번: 최대 유량 #파이썬  (0) 2023.10.23
    정렬  (0) 2022.07.27
    기본 수학 1, 2  (0) 2022.05.18
    문자열  (0) 2022.05.18
    함수  (0) 2022.05.18

    댓글

Designed by Tistory.