HDU 1568 Fibonacci 【FIB通項公式+log10取前N為位數】
Fibonacci
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4880 Accepted Submission(s): 2262
Problem Description
2007年到來了。經過2006年一年的修煉,數學神童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說的是否正確。
(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
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
AC程式碼:
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#define s5 sqrt(5.0)
int fib[42];
int main()
{
fib[0]=0; fib[1]=1;
for(int i=2;i<=40;++i) fib[i]=fib[i-2]+fib[i-1];
int N;
while(~scanf("%d",&N)) {
if(N<=40) {
int tem=fib[N];
while(tem>9999) tem/=10;
printf("%d\n",tem);
continue;
}
double s=-log10(s5)+(double)(N)*log10((1+s5)/2);
int y=s;
double ans=pow(10.0,s-y)*pow(10.0,3);
printf("%d\n",(int)(ans));
}
return 0;
}
相關文章
- HDU 3117 Fibonacci Numbers(Fibonacci矩陣加速遞推+公式)矩陣公式
- 已知數列求其通項公式公式
- 如何求數列的通項公式公式
- YT14-HDU-求N^N的個位數(暴力破解版)
- 1064. 計算斐波那契第n項 通項公式公式
- 漢諾塔通項公式公式
- MySQL 分組排序後 → 如何取前N條或倒數N條MySql排序
- jquery如何獲取li元素的前n個程式碼例項jQuery
- HDU1792(公式)公式
- 斐波那契數列的通項公式及證明公式
- HDU 2582 f(n) (組合數的gcd)GC
- HITOJ 1864 求Fibonacci數列的位數
- 階乘之和 輸入n,計算S=1!+2!+3!+…+n!的末6位(不含前導0)。n≤10 6 ,n!表示 前n個正整數之積。
- HDU 2685 I won't tell you this is about number theory (數論 公式 快速冪取模)公式
- 三數取中公式思路公式
- HDU 3600 Simple Puzzle 歸併排序 N*N數碼問題排序
- ACM n-1位數ACM
- HDU1588Gauss Fibonacci(矩陣)矩陣
- 7-34 PTA C語言--求分數序列前N項和C語言
- HDU 3059 Fibonacci數列與矩陣求和 矩陣大小不固定矩陣
- HDU2813Interesting Fibonacci(斐波那契數列+迴圈節)REST
- 【Codeforces Round 362 (Div 2)E】【公式推導+快速冪+費馬小定理】PLEASE a[i]=(1-a[i-1])除2下n次項 n為連乘數公式
- 【HDU - 1792】A New Change Problem(推公式、互質數的最大不能表示數)公式
- 通達信過前高選股指標公式原始碼指標公式原始碼
- hdu5435 數位dp(大數的處理)
- 字串擷取從前幾位到後幾位字串
- 包含中文的字串中擷取前N個字元字串字元
- HDU 6034 Balala Power!(大數進位制)
- HDU 1848 Fibonacci again and again(SG函式)AI函式
- HDU 4686 (推公式+矩陣快速冪)公式矩陣
- jquery刪除前n個li元素程式碼例項jQuery
- HDU 1299 Diophantus of Alexandria (公式變形 分解質因數)公式
- HDU 3221Brute-force Algorithm(降冪公式 神似hdu4549)Go公式
- MySQL分組排序取前N條記錄 以及 生成自動數字序列 的SQLMySql排序
- 計算2的N次冪n 可輸入,n為自然數
- 通過滑鼠拖動選取指定數字程式碼例項
- MySQL分組查詢後獲取前N條資料MySql
- 直播軟體原始碼,js獲取n天前的日期原始碼JS