博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1568 Fibonacci
阅读量:5306 次
发布时间:2019-06-14

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

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1568

参考别人的思路过的==|||,当n比较大的时候,使用如图所示的通项公式:

先化简,使用极限考虑,n很大的情况消去一个项:[1-(1-?5)^n/(1+?5)^n],然后方程两边取对数。

得到log10(fn) = n*log10((1+?5)/2)-1/2*log10(5)

ac代码:

#include
#include
#include
using namespace std;int a[100];void init(){ a[0]=0; a[1]=1; for(int i=2;i<21;i++){ a[i]=a[i-1]+a[i-2]; }}int main(){ init(); int n; while(scanf("%d",&n)==1){ if(n<21){ printf("%d\n",a[n]); continue; } double log10f = n*log((1+sqrt(5))/2)/log(10)-0.5*log(5)/log(10); double res = pow(10,log10f-floor(log10f)); while(res<1000){ res*=10; } printf("%d\n",(int)res); }}

 

转载于:https://www.cnblogs.com/jackwuyongxing/p/4549092.html

你可能感兴趣的文章
C语言栈的实现
查看>>
代码为什么需要重构
查看>>
TC SRM 593 DIV1 250
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
Python-S9-Day127-Scrapy爬虫框架2
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
右侧导航栏(动态添加数据到list)
查看>>
81、iOS本地推送与远程推送详解
查看>>
虚拟DOM
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
Spark的启动进程详解
查看>>
使用命令创建数据库和表
查看>>
机器视觉:SSD Single Shot MultiBox Detector
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>