Python/PythonProgramming

[Python] 백준_재귀함수

sefdcrxe 2022. 10. 24. 19:45

재귀 - 10870번 - 피보나치 수열

 

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다.

그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. -> Fn = Fn-1 + Fn-2 (n ≥ 2)

n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.

 

def f(n):
  if n == 0 or n == 1:
    return n
  else:
    return f(n-1) + f(n-2)

n = int(input())
print(f(n))
 
 
재귀 - 10872번 - 팩토리얼

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

 

def p(n):
  if n == 0:
    return 1
  else:
    return n * p(n-1)   #10*9*8*7*6*5*4*3*2*1

n = int(input())
print(p(n))

 

*******for문으로 풀어보면*******

n = int(input())

result = 1  #1부터 시작할 것임
for i in range(1, n+1):  #n=10이면 (1,11) -> 즉 1~10까지를 나타내는, 10번 반복하는 함수
  result *= i   # result = result*i -> result = 1*2*3*4*5*6*7*8*9*10
  print(result)