Hỏi giải thuật bị sai 1 test case

chào mọi người, em có chơi cái giải thuật ở đây https://serverheist.com (em không copy đề bài được do họ chống copy)
thì họ có cho bài giải thuật là

Có một con châu chấu muốn đi từ điểm A tới B với khoảng cách là a bước nhảy. Với mỗi bước nhảy, châu chấu có thể nhảy 1 bước hoặc b bước. Hỏi có bao nhiêu cách để châu chấu nhảy từ A tới B
Ví dụ
a = 3 và b = 2
jump(3, 2) = 3

Giải thích

  • C1: Bước đầu nhảy 1 bước, bước 2 nhảy 2 bước (1 + 2 = 3)
  • C2: Bước đầu nhảy 2 bước, bước 2 nhảy 1 bước (2 + 1 = 3)
  • C3: Nhảy 1 bước 3 lần (1 + 1 + 1 = 3)

em có code như ở dưới, nhưng không hiểu bị sai ở đâu mà cứ báo lỗi 1 test case :frowning: anh chị nào coi giúp em với được không

def fill_dp(a, b):
  dp = {}
  for i in range(0, b):
    dp[i] = 1
  for i in range(b, a + 1):
    dp[i] = dp[i - 1] + dp[i - b]
  return dp

def jump(a,b):
  if a < 1 or b < 1:
    return 0
  dp = fill_dp(a, b)
  return dp[a]
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?