前往
大廳
主題

ZeroJudge - b837: 104北二1費氏數列 解題心得

Not In My Back Yard | 2021-10-02 00:00:05 | 巴幣 0 | 人氣 398

題目連結:


題目大意:
已知費氏數列第零項為 0 、 第一項為 1,其後的每一項為前兩項之和。

輸入第一列給定一正整數 t (t < 10000),代表有 t 筆測試資料,每筆佔一列。接下來 t 列,每列給定兩非負整數 A 、 B(0 ≦ A 、 B ≦ 1000000),請由小到大輸出所有介於 A(含)~B(含)之間的費氏數列項次,並在輸出完所有項次後輸出總個數。而每筆測試資料之間請輸出一列「------」用以間隔。輸出格式參見範例輸出。



範例輸入:
6
55 200
90 140
0 0
1 2
2 5
3 0


範例輸出:
55
89
144
3
------
0
------
0
1
------
1
1
2
3
------
2
3
5
3
------
0
1
1
2
3
5


解題思維:
先預先求出費氏數列前 32 項(因為第三十一項為 1346269)於一個陣列中以供查詢(參見這題)。接著就對每個 A 、 B 值去掃過這些項次看哪些介於 A ~B 之間並統計數量即可,但是要注意的是題目並沒有保證 A 、 B 兩者的大小關係,所以有可能 A > B。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作