费波拉契通项公式变形
来源:互联网 发布:时时彩冷热数据 编辑:程序博客网 时间:2024/04/27 21:00
HDU1568Fibonacci
费波拉契通项公式:
以10为底取对数:
这一项趋近于0,且n越大越趋近于0
所以取 即可,
然后应该返回吗?不是的!这样得到的数根本没变,还是非常大,我们取log10(F(n))的小数部分即可,因为:
设一个数x的整数部分为a,小数部分为b,则,
决定小数点的位置, 才决定了这个数的每一位上的数字是多少,
比如:
需要前多少位只要移动 的小数点位置(反复乘10)就行了
#include<cstdio>#include<cmath>#define N 100000001int fib[N]={0};void Init(){ fib[0]=0,fib[1]=1; for(int i=2;i<=20;i++) fib[i]=fib[i-1]+fib[i-2];}int F(int n){ if(n==0||fib[n])return fib[n]; double lg_f=-log10(5)/2+n*log10((1+sqrt(5))/2); double b=lg_f-(int)lg_f;//取小数部分 double f=pow(10,b); while(f<1000)f*=10; return fib[n]=(int)f;}int main(){ Init();//20以下的费波数在4位数以内,先处理出来 int n; while(scanf("%d",&n)!=EOF) printf("%d\n",F(n)); return 0;}
0 0
- 费波拉契通项公式变形
- hdu1568Fibonacci(公式变形)
- HDU1799-组合公式变形
- 数论 --- 斐波纳挈数列公式的变形
- uva 10655 公式变形 矩阵快速幂
- 【洛谷】2759 奇怪的函数 公式变形
- 由欧拉公式变形而获得的等式
- 特殊的变形组合公式求和的推导
- 用摄动法证明fibs的一个公式(变形)
- hdu 5175 Misaki's Kiss again (抑或运算+公式变形)
- UVA - 11029 - Leading and Trailing (快速幂+公式变形)
- An easy problem 2601 (数学题+公式变形)
- HDU 1299 Diophantus of Alexandria (公式变形 分解质因数)
- 【BZOJ】1257 [CQOI2007]余数之和sum 公式变形
- HDU 1719 Friend (思路题)公式推导变形
- 变形
- 变形
- 变形
- 如何用openssl命令行生成证书
- 素数筛法
- 0125 Flume NG 简介及配置实战
- java NIO
- hdu1198—并查集
- 费波拉契通项公式变形
- js实现黑客帝国二进制雨
- rhel6.3下使用openssl来生成CA证书并颁发证书实例解
- HDU1032 The 3n + 1 problem循环次数
- 批处理拷贝文件夹
- struts2文件上传
- Item2分屏快捷键
- Stack Exchange的架构
- DATE_FORMAT和TO_DATE