본문 바로가기
IT/알고리즘

[백준] 10872 팩토리얼, 10870 피보나치 수

by 랑_랑 2022. 1. 17.
300x250

https://www.acmicpc.net/problem/10870

 

10870번: 피보나치 수 5

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net

 

https://www.acmicpc.net/problem/10872

 

10872번: 팩토리얼

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

이번 문제는 재귀함수에 관한 문제였다.

 

문제는 재귀함수가 기억이 나지 않은 것이었다. 반복한다는 것만 기억이 났었는데 그걸 바탕으로 열심히 생각해보니 대충 기억이 났다.

 

'''피보나치'''
num = int(input())


def fibo(count):
    if count <= 1:
        return count
    else:
        return fibo(count-1) + fibo(count-2)
print(fibo(num))




'''팩토리얼'''
num = int(input())

def recursive(num):
    if num <= 1:
        return 1
    else:
        return num * recursive(num-1)


print(recursive(num))

원리는 간단하게 말해보면 만든 함수를 함수 내에서 다시 사용하는 것이다.

 

1에 도달할 때 값을 주며 재귀를 처리해나간다.

728x90

댓글