[2023年到來了。經過2023年一年的修煉,數學神童zouyu終於把0到100000000的fibonacci數列
(f[0]=0,f[1]=1;f[i] = f[i-1]+f=2」>i-2)的值全部給背了下來。
接下來,codestar決定要考考他,於是每問他乙個數字,他就要把答案說出來,不過有的數字太長了。所以規定超過4位的只要說出前4位就可以了,可是codestar自己又記不住。於是他決定編寫乙個程式來測驗zouyu說的是否正確。
input
輸入若干數字n(0 <= n <= 100000000),每個數字一行。讀到檔案尾。
output
輸出f[n]的前4個數字(若不足4個數字,就全部輸出)。
sample input
0 1
2 3
4 5
35 36
37 38
39 40
sample output
0 1
1 2
3 5
9227
1493
2415
3908
6324
1023
先求出其通項公式如下fn
=15√
⎡⎣(1
+5√2
)n−(
1−5√
2)n⎤
⎦ 證明過程
有了公式後還要注意一點就是它只要輸出前4位,方法鏈結 lg
fn=−
lg5√+
lg⎡⎣(
1+5√
2)n−
(1−5
√2)n
⎤⎦=−
lg5√+
lg(1+
5√2)
n+lg⎡
⎣1−(
1−5√
1+5√
)n⎤⎦
≈−lg5
√+n⋅
lg(1+
5√2)
那麼它前四位就是[10
+3]
(注:{}為取小數部分,為取整數部分)
**如下
#include
#include
#include
using
namespace
std;
const
double sqrt_5=sqrt(5.0);
const
double a=sqrt_5/5;
const
double b=(1+sqrt_5)/2;
const
double c=(1-sqrt_5)/2;
int fib1(int n)
int fib2(int n)
int main()
return
0;}
斐波那契數列通項公式
斐波那契數列指的是每一項都等於前兩項之和的數列,定義為f 1 1,f 2 1,f n f n 1 f n 2 n 3 我們先來研究形如f n c1f n 1 c2f n 2 的數列。對於這樣的數列,f n xf n 1 與f n 1 xf n 2 的比值一定是乙個定值,即 將其進行移項運算,得 對應...
維護斐波那契數列通項公式
在模意義下,使用通項公式沒有了精度誤差,就變的可以使用了 斐波那契數列的通項公式是 f n frac 1 frac 1 而 sqrt 在不同的模數下,不一定存在,否則列舉一下或者二次剩餘定理弄一下就可以求出來 在通項公式中是實際上可以把兩項分開算 frac 1 frac 1 但是在分母中還是有乙個 ...
波菲那契數列公式 裴波那契數列的通項公式?
遞推公式 an a n 1 a n 2 通項公式及推導方法 斐波那契數列公式的推導 斐波那契數列 1 1 2 3 5 8 13 21 如果設f n 為該數列的第n項 n n 那麼這句話可以寫成如下形式 f 0 0,f 1 f 2 1,f n f n 1 f n 2 n 3 顯然這是乙個線性遞推數列。...