problem description
2023年到來了。經過2023年一年的修煉,數學神童zouyu終於把0到100000000的fibonacci數列
(f[0]=0,f[1]=1;f[i] = f[i-1]+f[i-2](i>=2))的值全部給背了下來。
接下來,codestar決定要考考他,於是每問他乙個數字,他就要把答案說出來,不過有的數字太長了。所以規定超過4位的只要說出前4位就可以了,可是codestar自己又記不住。於是他決定編寫乙個程式來測驗zouyu說的是否正確。
input
輸入若干數字n(0 <= n <= 100000000),每個數字一行。讀到檔案尾。
output
輸出f[n]的前4個數字(若不足4個數字,就全部輸出)。
sample input
012sample output34535
3637
3839
40
011分析:求斐波那契的通項公式:2359227
1493
2415
3908
6324
1023
對數的性質,loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c);
floor函式:
floor(x),有時候也寫做floor(x),其功能是「向下取整」,或者說「向下捨入」,即取不大於x的最大整數(與「
四捨五入
」不同,下取整是直接取按照數軸上最接近要求的值左邊的值,也就是不大於要求的值的最大的那個)。
floor(3.14) = 3.0
floor(9.999999) = 9.0
floor(-3.14) = -4.0
floor(-9.999999) = -10
假設給出乙個數10234432,
那麼log10(10234432)=log10(1.0234432*10^7)【用科學記數法表示這個數】=log10(1.0234432)+7;
log10(1.0234432)就是log10(10234432)的小數部分.
log10(1.0234432)=0.010063744(取對數所產生的數一定是個小數)
再取一次冪:10^0.010063744=1.023443198
最後再將這個數乘上1000,再用floor函式即可
**如下:
#include#include#include#includeconst double flag=(1+sqrt(5))/2;
int f[22]=;
int n;
int main()
while(scanf("%d",&n)!=eof) }
return 0;
}
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
迴圈斐波那契數列 斐波那契數列應用
什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...
斐波那契數列
1 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義如下 輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入包括乙個整數n 1 n 70 輸出 對應每個測試案例,輸出第n項斐波那契數列的值。2 這是九度上的乙個題,要求時間限制1秒,整數的...