목차
728x90
반응형
SMALL
문제 1
# n이 2보다 큰 경우 재귀
# 첫번째, 두번째 피보나치수를 구할 땐 1 반환
def fibo(n) :
if n <= 2 :
return 1
else :
return fibo(n-1)+ fibo(n-2)
n = int(input())
print(fibo(n))
문제 2
def func(n, m) :
if n % m == 0 :
return m
# 최대공약수가 나오지 않은 경우
# 나눈 수 m과 나머지 n%m을 인자로 재귀
else :
return func(m, n % m)
a, b = map(int, input().strip().split(' '))
print(func(a, b))
문제3
count = 0
def findNum(n) :
# 가장 바깥 수를 파악하기 위한 전역변수
global count
# 인자가 2인 경우를 count가 1씩 증가
if n == 2 :
count += 1
if n == 1 :
return 3
# 인자에 2가 처음 들어온 경우,
# 즉, 가장 바깥 수를 정하는 경우
# 맨 앞에 0이 올 수 없으니 69, 96, 11, 88 네 경우만 가능하므로 4,
# 인자에 2가 처음 들어온게 아닌 경우
# 가장 바깥 수가 아니므로 69, 96, 11, 00, 88 다섯 경우가 가능
if n == 2 :
if count == 1 :
return 4
else :
return 5
return findNum(2) * findNum(n-2)
a = int(input())
print(findNum(a))
728x90
반응형
LIST