Hi, I found following two codes output different values. import tables var n = 3 var dp = initTable[int, int](0) proc dfs(x: int): int = if x < 2: return 0 if x in dp: return dp[x] dp[x] = x dp[x] += dfs(x div 2) dp[x] += dfs((x+1) div 2) return dp[x] echo dfs(n) # 3 Run import tables var n = 3 var dp = initTable[int, int](0) proc dfs(x: int): int = if x < 2: return 0 if x in dp: return dp[x] dp[x] = x var y = dfs(x div 2) dp[x] += y y = dfs((x+1) div 2) dp[x] += y return dp[x] echo dfs(n) # 5 Run
Why these codes returns different reaults?