博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu1568 hdu4099 斐波那契
阅读量:4991 次
发布时间:2019-06-12

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

斐波那契史:

①     求斐波那契数的后四位,矩阵乘法+快速幂。

②     求斐波那契数的前四位(n<100000000),用到斐波那契数的公式(Hdu1568)。

③     求斐波那契数的前40位(n<100000)(Hdu4099)。

④     求斐波那契“串”的某一位(百度之星)……

斐波那契数公式:

①矩阵+快速幂

②hdu1568

  先看对数的性质

  loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c);

  Eg:

  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
  那么要取几位就很明显了吧~
  先取对数(对10取),然后获得成果的小数项目组bit,pow(10.0,bit)今后若是答案还是小于1000那么就一向乘10。
  这题要用到斐波那契数列的公式: f[n]=

  取完对数:

  其中aa =(sqrt(5.0)+1.0)/2.0;

  因为  趋近于0

  所以可以写成log10(an)=-0.5*log10(5.0)+((double)n)*log(f)/log(10.0);

  最后取其小数项目组。

View Code
1 #include 
2 #include
3 #define aa (sqrt(5.0)+1.0)/2 4 int main() 5 { 6 int i,n,Fibonacci[40]={
0,1,1,2,3,5}; 7 double ans; 8 for(i=6;i<40;i++) 9 Fibonacci[i] = Fibonacci[i-1]+Fibonacci[i-2];10 while(scanf("%d",&n)!=EOF)11 {12 if(n<40){13 int a=Fibonacci[n];14 while(a>10000){15 a=a/10;16 }17 printf("%d\n",a);18 }19 else20 {21 ans=-0.5*(log10(5.0))+n*log10(aa);22 ans-=(int)ans;23 ans=pow(10.0,ans);24 while(ans<1000)25 ans*=10;26 printf("%d\n",(int)ans);27 }28 }29 return 0;30 }

③斐波那契+字典树???

④废话:

  好不容易写一次百度之星的题,愣是没给评判结果,说是没评判结果的都是编译错误,T.T因为只有一次提交机会,所

  以编译运行测试了无数遍才提交的,很多大牛也都没评判结果,后来几周的百度之星因为期末考试结果都被遗忘了T.T~

    百度之星的斐波那契字符串,就是找循环节,因为总共100种结果,打表后发现只有两种循环节,而循环节是1149的

  也只有几种情况,所以我是直接分情况判断的,代码写的很暴力。

  最一开始接触acm就是斐波那契,当6.5给我说矩阵乘法和公式法求斐波那契数的时候我才意识到斐波那契数是那么神奇~~  

转载于:https://www.cnblogs.com/-sunshine/archive/2013/01/11/2856730.html

你可能感兴趣的文章
《Hadoop》对于高级编程Hadoop实现构建企业级安全解决方案
查看>>
android ndk通过遍历和删除文件
查看>>
Notification(一个)——使用演示样本的基础知识
查看>>
《算法导论》为什么经典
查看>>
windows如何能在“运行”框输入名称就启动相应的软件
查看>>
修复反编译资源文件及批量修复程序源码
查看>>
CODEVS 1217 借教室
查看>>
VM ware 安装时候的一些坑和解决办法
查看>>
【原】最长上升子序列——动态规划
查看>>
26. Remove Duplicates from Sorted Array
查看>>
RN开发-Navigator
查看>>
innodb二进制文件相关的参数
查看>>
前谷歌高管给初入职场新人的14条忠告
查看>>
01-html介绍和head标签
查看>>
Python之Linux下的 virtualenv
查看>>
ASP.NET Web开发框架之三 报表开发
查看>>
大家好
查看>>
PHP文件上传类
查看>>
Python基础 --- 使用 dict 和 set
查看>>
仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)
查看>>