但是,當你輸入46的時候,你會發現計算機在不停地運算,十多秒後終於給出了結果(可能在等待的過程中你以為程序出問題了),可想而知,超時了。但有沒有更快的方法呢?用數組吧!代碼如下:
#include using namespace std; int main() { int k; cin>>k; int Fi[47]; Fi[0]=1,Fi[1]=1; for(int i=2;i<=46;i++) Fi[i]=Fi[i-2]+Fi[i-1]; cout<當輸入46,結果馬上跳出來,是不是很快?有些問題只能用遞歸來解決,但不是所有的問題都要用遞歸來做,能不用遞歸的場合儘量不要用遞歸,因為計算時間太長。