Fibonacci 斐波那契数列(求第n项值的前4位数字)
来源:互联网 发布:python读html文件 编辑:程序博客网 时间:2024/04/29 19:03
题目:点击打开链接
转载链接:点击打开链接
Fibonacci
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5531 Accepted Submission(s): 2614
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
012345353637383940
Sample Output
011235922714932415390863241023
以上两个公式是此题的关键,另外一个地方就是求出了 log10( f (n) ) 从而求 f ( n ) 的方法。
这是百度百科找来的说明,要掌握对数的运算性质。
完了算出小数部分,乘1000就是前4位了。
#include <cstdio> #include <cmath> int main() { int f[22]={0,1,1}; for (int i = 3 ; i <= 20 ; i++) f[i] = f[i-1] + f[i-2]; double n; double a1 = log10(1.0 / sqrt(5)); double a2 = log10((1 + sqrt(5)) / 2); while (~scanf ("%lf",&n)) { if (n <= 20) { printf ("%d\n",f[(int)n]); continue; } double ans = a1 + n * a2; ans -= floor(ans); ans = pow (10,ans); ans = (int)(ans * 1000); printf ("%.lf\n",ans); } return 0; }
以上两个公式是此题的关键,另外一个地方就是求出了 log10( f (n) ) 从而求 f ( n ) 的方法。
这是百度百科找来的说明,要掌握对数的运算性质。
完了算出小数部分,乘1000就是前4位了。
阅读全文
0 0
- Fibonacci 斐波那契数列(求第n项值的前4位数字)
- poj3070 Fibonacci 斐波那契数列的第n项的矩阵求法
- 求斐波那契 (Fibonacci) 数列第 n 项的算法
- 求斐波那契 (Fibonacci) 数列第 n 项的算法
- 斐波那契数列 求第n个数、前n个数之和
- 求Fibonacci数列的第n项
- 求Fibonacci数列的第n项
- 斐波那契数列求第N项的值
- HDU1568 Fibonacci 斐波那契的前4位
- 求Fibonacci数列的第N个数字
- 初学C语言:斐波那契数列(求前n项和)
- 斐波那契数列(Fibonacci sequence)的前200项
- NYOJ 461-Fibonacci数列(四)(求斐波那契数列前4位)
- 输出斐波那契数列的前n项
- 斐波那契数列的前n项
- 斐波那契Fibonacci数列第n个数的快速求法
- 求 Fibonacci数列前n项之和....
- C语言:求Fibonacci数列的前n项和
- 最短路径【迪杰斯特拉算法】【模板】
- 微软Visual Studio开发流程和Service Package
- hbase权威指南学习笔记
- 将数据集做成VOC2007格式用于Faster-RCNN训练
- Python机器学习与实践——简介篇
- Fibonacci 斐波那契数列(求第n项值的前4位数字)
- 17暑假多校联赛3.11 HDU 6066 RXD's date
- POJ 1475:Pushing Boxes
- 搞定linux上MySQL编程(六):C语言编写MySQL程序(结)
- Git 文件管理
- 桶排序
- 独立封装简单mvc框架(1)
- openresty程序开发(Nginx+Lua)
- VC6.0编译时出现:error C2660: 'VarCmp' : function does not take 4 parameters