博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝精灵之小饭写数字
阅读量:4332 次
发布时间:2019-06-06

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

蓝精灵之小饭写数字

题目:

蓝精灵之小饭写数字

题面:

有一个数列叫斐波那契数列,f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2),小饭有支大力金刚笔,能写n位数字,她想知道,如果从f(1)开始写,她能写到第几个斐波那契数。。比如n=20,那么她能写。11235813213455891442。。。第13个斐波那契数。如果n=1亿,问小饭能写到第几个斐波那契数?

输入描述:

输入数据有多组。

输入一个整数n(0<n<1e8)。

输出描述:

输出答案。

输入样例:

20

输出样例:

13

题解

先用公式预处理出1e8个数需要多少个斐波那契数组成,然后求前缀和,二分查找合适的答案

#include 
#include
typedef long long LL;LL ans[31000];int main() { LL cnt = 0; for(LL i = 1; cnt <= 100000000; i++) { LL result = (long long)((double)i * log10(0.5 + 0.5 * sqrt(5)) - log10(sqrt(5))) + 1; cnt += result; ans[i] = cnt; } LL sum, ans1, ans2; while(~scanf("%lld", &sum)) { LL l = 0, r = 30935, mid; while(r - l > 1) { mid = (l + r) / 2; if(ans[mid] <= sum && ans[mid + 1] >= sum) { if(ans[mid] == sum) mid--; break; } else if(ans[mid + 1] < sum) l = mid; else r = mid; } printf("%lld\n", mid + 1); } return 0;}

转载于:https://www.cnblogs.com/fanshhh/p/11377898.html

你可能感兴趣的文章
excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法
查看>>
响应式web设计之CSS3 Media Queries
查看>>
实验三
查看>>
机器码和字节码
查看>>
环形菜单的实现
查看>>
【解决Chrome浏览器和IE浏览器上传附件兼容的问题 -- Chrome关闭flash后,uploadify插件不可用的解决办法】...
查看>>
34 帧动画
查看>>
二次剩余及欧拉准则
查看>>
thymeleaf 自定义标签
查看>>
关于WordCount的作业
查看>>
UIView的layoutSubviews,initWithFrame,initWithCoder方法
查看>>
STM32+IAP方案 实现网络升级应用固件
查看>>
用74HC165读8个按键状态
查看>>
jpg转bmp(使用libjpeg)
查看>>
linear-gradient常用实现效果
查看>>
sql语言的一大类 DML 数据的操纵语言
查看>>
VMware黑屏解决方法
查看>>
JS中各种跳转解析
查看>>
JAVA 基础 / 第八课:面向对象 / JAVA类的方法与实例方法
查看>>
Ecust OJ
查看>>