IT/알고리즘
[python/알고리즘] 등차수열의 합 구하기
유달잇
2021. 5. 17. 10:09
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