728x90

 

등차수열의 합을 구해보자.


 

등차수열 이란?


연속하는 두 항의 차이가 모두 일정한 수열을 뜻한다.

 


 

Q. 1 × 20 + 2 × 19 + 3 × 18 + ⋯ + 20 × 1 = ?

A.

  
  def summation(n):
      s = 0
      for i in range(1, n+1): 
          s += i * (n+1 - i)
      return s

  print(summation(20))
  

 

 

Q. 재귀를 통해 수열의 합 구하기

A. 

  
  def sumOfArray(array, i):
      end = len(array) - 1
      if end == i :
          return array[end]
      else:
          return array[i] + sumOfArray(array, i+1)

  print(sumOfArray([1,2,3,4,5,6,7,8,9,10],0))
  

 

 이외에도 재귀를 통해 팩토리얼, 피보나치 수열을 구현할 수 있다.

2021.02.15 - [IT/알고리즘] - [python/자료구조] 재귀함수

 

[python/자료구조] 재귀함수

재귀함수란? 메소드 혹은 함수의 내부에서 자기 자신을 다시 호출하는 함수이다. 재귀함수를 통해 코드를 보다 간결하게 작성할 수 있으며 변수 사용을 최소화할 수 있다. 모든 재귀함수는 반복

upgrade-j.tistory.com

 

 

Q. 두 자연수 n, k에 대한 이항계수 구하기

A. 

  
  def binomial(n, k):
      if k == 0 or n == k :
          return 1
      else:
          return binomial(n-1, k-1) + binomial(n-1, k)
        
  print('이항계수 n, k : ', binomial(5,2))
  

 

 

Python 재귀 오류!


RecursionError: maximum recursion depth exceeded in comparison

 

파이썬은 기본적으로 1000개 이상의 재귀를 제한하고 있어 그 이상의 재귀가 호출되면 에러가 뜬다.

이를 해결하기 위해서는 아래와 같이 코드를 추가하여 재귀의 호출 제한 횟수를 변경하면 된다.

ex) sys.setrecursionlimit(100000000)

  
  # 재귀 호출 제한 횟수 변경
  import sys
  sys.setrecursionlimit(10**10)
  

 

 

 

출처 : Youtube 주니온TV 아무거나연구소의 코린아, 코딩하자! with 파이썬
728x90
댓글
250x250
최근에 올라온 글
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Total
Today
Yesterday