【HDU3117】Fibonacci Numbers
【HDU3117】Fibonacci Numbers
题面
求斐波那契数列的第nn项的前四位及后四位。
其中0≤n<2320≤n<232
题解
前置知识:线性常系数齐次递推
其实后四位还是比较好求,矩阵快速幂就可以了,主要是前四位。
先用线性常系数齐次递推求出斐波那契数列的通项公式
fn=√55((1+√52)n−(1−√52)n)fn=√55((1+√52)n−(1−√52)n)
因为数列的前3939项我们还是存的下的,所以我们只考虑n≥40n≥40的情况
考虑到n≥40n≥40时√55∗(1−√52)n√55∗(1−√52)n是个很小的东西,可以不考虑它的影响
那么我们就是要求
√55(1+√52)n√55(1+√52)n
现在先考虑这样一个式子,数xx用科学计数法表示
x=t∗10kx=t∗10k
那么xx的前四位即为tt的前四位,我们将xx取个常用对数
lgx=lgt+klgx=lgt+k
类比上式以及我们要求的式子:
y=lg(√55(1+√52)n)=lg√55+lg(1+√52)n=lg√55+n×lg1+√52
那么lgt=y−⌊y⌋,最后1000×10y的整数部分就是答案。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(4)
· 2025成都.NET开发者Connect圆满结束
· langchain0.3教程:从0到1打造一个智能聊天机器人