博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1568 Fibonacci 数学= = 开篇
阅读量:6030 次
发布时间:2019-06-20

本文共 1034 字,大约阅读时间需要 3 分钟。

题目链接 

分析:一道数学题

找出斐波那契数列的通项公式,再利用对数的性质就可得到前几位的数

斐波那契通项公式如下:

斐波那契公式

取完对数后(记fn为第n个数)

log10(fn)=-0.5*log10(5.0)+((double)n)*log(f)/log(10.0)+log10(1-((1-√5)/(1+√5))^n)  其中f=(sqrt(5.0)+1.0)/2.0;

最后取对数的小数部分就可得最终结果

代码如下:

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 const double f=(sqrt(5.0)+1)/2.0; 8 int fi[20]; 9 int main()10 {11 int n,i;12 double bit;13 fi[0]=0;fi[1]=fi[2]=1;14 for(i=3;i<=20;i++)15 {16 fi[i]=fi[i-1]+fi[i-2];17 }18 while(scanf("%d",&n)!=EOF)19 {20 if(n<=20)21 printf("%d\n",fi[n]);22 else{23 bit=-0.5*log10(5.0)+((double)n)*log(f)/log(10.0);24 bit=bit-(int)bit;25 bit=pow(10.0,bit);26 while(bit<1000)bit*=10;27 printf("%d\n",(int)bit);28 }29 }30 return 0;31 }
View Code

 

转载于:https://www.cnblogs.com/wuwing/p/3304651.html

你可能感兴趣的文章
文本编程
查看>>
乔布斯走了。你还期待苹果吗?
查看>>
优先级
查看>>
Tomcat与Web服务器、应用服务器的关系
查看>>
用DFS实现全排列 & 八皇后问题
查看>>
深度学习博客
查看>>
Android总结篇系列:Android Service
查看>>
Android dumpsys命令的使用
查看>>
Linux Kernel系列一:开篇和Kernel启动概要
查看>>
BZOJ 2756: [SCOI2012]奇怪的游戏 网络流/二分
查看>>
master + worker模式的node多核解决框架——node-cluster
查看>>
Android如何实现超级棒的沉浸式体验
查看>>
使用node打造自己的命令行工具方法教程
查看>>
Express代理中间件问题与解决方案
查看>>
||和&&返回什么?
查看>>
linux在文件中查找指定字符串,然后根据查找结果来做进一步的处理
查看>>
在Oracle中删除所有强制性外键约束
查看>>
dhcp
查看>>
【R】R语言使用命令行参数 - [编程技巧(Program Skill)]
查看>>
经典算法题每日演练——第二题 五家共井
查看>>