給你 n,m, 求 gcd(Fm,Fn)
*Fx 代表 Fibonacci 數列第 x 項
2019/6/8 時限調降至 0.5s
輸入說明
輸入有多行
每行有 m,n 兩數(m,n<=10000)
輸出說明
答案(保證可以用 unsigned long long 存)
1. 此題的考點在於如何使用遞迴函數來運算 fibonacci 數列
2. 但使用此解法無法通過測支, 所以需優化程式, 查表法為最速解
3. 先使用另一個.py 列印出 1~94 的 fibonacci 數列 list
4. 此題須了解到兩 fibonacci 數做 GCD 的結果 = 兩數做 GCD 的 fibonacci 數
1 | # 使用偷吃步預測 fibonacci 數列只會遞迴至 94 項, 優先使用 list 查表法降低處理時間, 如使用遞迴法書寫 fibonacci 數列, 有機會溢出, 故使用 list 法 |
1 | def gcd(a,b): |

作者: 微風