jm_p_op

.py 재귀함수(파스칼의 삼각형) 본문

수학/알고리즘

.py 재귀함수(파스칼의 삼각형)

jm_p_op 2023. 4. 28. 22:43

같이한 팀원 : https://sogummi.tistory.com/113

 

 

 

idea

  • n번째 list의 길이는 n이다
  • list(n+1)번째의 m(>1)번째 요소는 list(n)의 m-1번째 요소와 m번째 요소를 더한것이다.
  • list의 마지막은 1이다.

발전된 코드

def pas(list, line_num):
    if len(list) == line_num:
        return list
    result = list[:]
    for i in range(len(list)-1):
        result[i+1] = list[i]+list[i+1]
    result.append(1)
    return pas(result, line_num)


a = pas([1], 9)
print(a)

 

 

 


팀원과 함께한 코드

def pascal(list,n):
    if n > 1:
        answer = []
        answer.append(1)
        for i in range(len(list)-1):
            answer.append(list[i]+list[i+1])
        answer.append(1)
        n -= 1
        return pascal(answer,n)
    if n == 1:
        return list

start_list=[1]
a=pascal(start_list, 8)
print("real_result",a)