강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của sadasdwq
sadasdwq

câu hỏi đã được viết

Giới thiệu về giải bài toán bằng thuật toán Python (chuẩn bị cho bài kiểm tra viết mã)

2. Cắt đường mạng (Top-Down: đệ quy, ghi nhớ)

이 함수가 왜 돌지 않는지 모르겠습니다

Viết

·

354

0

n = int(input())

def func(v):
    if v == 1:
        return 1
    if v == 2:
        return 2
    if dp[v] != 0:
        return dp[v]
    else:
        dp[v] = func(v-2) + func(v-1)
dp = [0] *(n+1)

func(n)
print(dp[n])

dp[v]!=0이 아니면 return dp[v]를 반환해주는 조건을 했는데
왜 오류가 뜨는지 모르겠습니다.
nontype 과 nontype은 더할 수 없다는데 디버깅을 해봐도 모르겠습니다 ㅠㅠ
python코딩-테스트코테 준비 같이 해요!

Câu trả lời 2

0

codingcamp님의 프로필 이미지
codingcamp
Người chia sẻ kiến thức

안녕하세요^^

n=5라고 할 때 func(5)가 최초로 호출되어 위에 코드를 돌린다면 func(3)이 func(1)이 반환해준 값과 func(2)가 반환해준 값을 받아 계산되듯이 func(3)도 자신의 값을 func(4)에게 반환해주어야 func(4)도 계산을 할 수 있습니다.

0

sadasdwq님의 프로필 이미지
sadasdwq
Người đặt câu hỏi

왜 else에 return dp[v]를 해줘야하는지 모르겠습니다

Hình ảnh hồ sơ của sadasdwq
sadasdwq

câu hỏi đã được viết

Đặt câu hỏi