2008
07-27

是否,我們可以舉辦 程式設計競賽?


 


我先丟一個題目:


使用 double,使用 遞迴,求費氏數列,


F(n)= F(n-2) + F(n-1)


F(0)= 1;


F(1)= 1;


不必講求效率,精確到結果的 每一個數字,


可以做到 第幾項,答案是多少,需要多少時間?


如果 不能在合理的時間之內完成,


需要如何更改,


可以做到 第幾項,答案是多少,需要多少時間?


時間的計算精確度是多少?如何證明?


 


求費氏數列》有 3 条评论

  1. whos 说:

    算了好久,最终结果也没出来,double的范围太大了,10的308次方啊。

    听着风扇呼呼转就心疼,干脆终止运算。

  2. sjgau4311 说:

    所以,這就是 你的不對啦!

    假設,F(n) –> ans

    // (ans + 1) must > ans

    if ((ans + 1) <= ans ) then break;

    // 就可以 停止用算啦

    and, 遞迴呼叫是很花時間的,

    如果 時間不合理,就要 想辦法更改演算法,

    改成 非遞迴的模式。

     

     

  3. whos 说:

    我来试试

留下一个回复