2013-06-29 35 views
0

這是我的代碼。這不是工作...任何人都可以幫助我?如何使用地圖進行記憶?

map<int,int> fibo; 

int fibonacci(int n) 
{ 
    if (n == 0 || n == 1) 
     return 1; 
    map<int,int>::iterator itr = fibo.find(n); 
    if (itr != fibo.end()) 
     return itr->second; 
    else 
     return fibo[ n ] = fibonacci(n -1) + fibonacci(n - 2); 
} 

我解決了這個問題。 Here's the Sample Solution!

回答

1

您正在檢查錯誤容器的end()。據推測,resultsmap<int,int>的另一個實例。

變化resultsfibo

if (itr != fibo.end()) 
+0

這是uploade時間問題! :) –

+0

你不會描述你認爲是錯誤的。 [這種修復似乎對我有用。](http://ideone.com/wjs7rA)如果你要用我的答案修復你的代碼,然後說它仍然是錯誤的,你必須描述什麼是錯的。 – jxh