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
'IT > 알고리즘' 카테고리의 다른 글
[백준] 11729 하노이 탑 (0) | 2022.02.01 |
---|---|
[백준] 2447 별 찍기 (0) | 2022.02.01 |
[백준] 1011 Fly me to the Alpha Centauri 파이썬 (0) | 2022.01.16 |
[백준] 2869 달팽이는 올라가고 싶다. (0) | 2022.01.13 |
[백준] 1712 손익분기점 (0) | 2022.01.13 |
댓글