1133. Fibonacci Sequence

Time limit: 1.0 second
Memory limit: 64 MB

is an infinite sequence of integers that satisfies to Fibonacci conditionFi + 2 = Fi + 1 + Fi for any integer i. Write a program, which calculates the value of Fn for the given values of Fi and Fj.

Input

The input contains five integers in the following order: iFijFjn.
−1000 ≤ ijn ≤ 1000, i ≠ j,
−2·109 ≤ Fk ≤ 2·109 (k = min(ijn), …, max(ijn)).

Output

The output consists of a single integer, which is the value of Fn.

Sample

input output
  1. 3 5 -1 4 5
  1. 12
  1. #include <iostream>
  2. using namespace std;
  3. const int oo=;
  4. int now;
  5. __int64 i,fi,j,fj,n;
  6. __int64 l=-oo,r=oo,mid,sum[];
  7. int main()
  8. {
  9. cin >> i >> fi >> j >> fj >> n;
  10. if (i > j)
  11. {
  12. swap(i,j);
  13. swap(fi,fj);
  14. }//进行调整,使得i比j考前
  15. while (l <= r)
  16. {//进行二分
  17. mid=(l+r)>>;//先取中间值,mid表示第i+1个数的值
  18. sum[]=fi;
  19. sum[now=]=mid;
  20. int k=i+,flag=-;
  21. while (k <= j)
  22. {//计算加法运算次数
  23. now=(now+)%;
  24. ++k;
  25. sum[now]=sum[(now+)%]+sum[(now+)%];
  26. if (sum[now] > oo) flag=;//向上超界了用1进行标记
  27. else if (sum[now] < (-oo)) flag=-;//超出了最低限用-1进行标记
  28. if (flag != -) break;//超界了就不需要在进行运算了
  29. }
  30. if (flag == -)
  31. {
  32. if (sum[now] > fj) flag=;//没有超界但是大于fj表示mid开大了
  33. else if (sum[now] < fj) flag=-;//没有超界但是运算到了j小于fj表示mid开小了
  34. else flag=;//mid开正确了
  35. }
  36. if (flag == ) r=mid-;//开大了重置r
  37. else if (flag == -) l=mid+;//开小了总之L
  38. else if (flag == ) break;//正好则跳出
  39. }
  40. sum[]=fi;
  41. sum[now=]=mid;//进行模拟找到第n个数
  42. if (i < n)
  43. {
  44. int k=i+;
  45. while (k <= n)
  46. {
  47. now=(now+)%;
  48. ++k;
  49. sum[now]=sum[(now+)%]+sum[(now+)%];
  50. }
  51. }
  52. else if (i > n)
  53. {
  54. int k=i-;
  55. while (k >= n)
  56. {
  57. now=(now+)%;
  58. --k;
  59. sum[now]=sum[(now+)%]-sum[(now+)%];
  60. }
  61. }
  62. else --now;
  63. cout << sum[now] << endl;
  64. return ;
  65. }

***1133. Fibonacci Sequence(斐波那契数列,二分,数论)的更多相关文章

  1. Computational Complexity of Fibonacci Sequence / 斐波那契数列的时空复杂度

    Fibonacci Sequence 维基百科 \(F(n) = F(n-1)+F(n-2)\),其中 \(F(0)=0, F(1)=1\),即该数列由 0 和 1 开始,之后的数字由相邻的前两项相加 ...

  2. 10、end关键字和Fibonacci series: 斐波纳契数列

    # Fibonacci series: 斐波纳契数列 # 两个元素的总和确定了下一个数 a, b = 0, 1 #复合赋值表达式,a,b同时赋值0和1 while b < 10: print(b ...

  3. [Amazon] Program for Fibonacci numbers 斐波那契数列

    The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21 ...

  4. Fibonacci series(斐波纳契数列)的几种常见实现方式

    费波那契数列的定义: 费波那契数列(意大利语:Successione di Fibonacci),又译费波拿契数.斐波那契数列.斐波那契数列.黄金切割数列. 在数学上,费波那契数列是以递归的方法来定义 ...

  5. 【算法】Fibonacci(斐波那契数列)相关问题

    一.列出Fibonacci数列的前N个数 using System; using System.Collections.Generic; using System.Linq; using System ...

  6. 509. Fibonacci Number斐波那契数列

    网址:https://leetcode.com/problems/fibonacci-number/ 原始的斐波那契数列 运用自底向上的动态规划最佳! 可以定义vector数组,但是占用较多内存空间 ...

  7. POJ 3070 Fibonacci【斐波那契数列/矩阵快速幂】

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17171   Accepted: 11999 Descr ...

  8. Fibonacci(斐波那契数列)的第N位数

    无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为F(n)=1 ...........(n=1或n=2)F(n)=F(n-1)+F(n-2).. ...

  9. 【LeetCode每天一题】Fibonacci Number(斐波那契数列)

    The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such th ...

随机推荐

  1. hdu1032

    #include <iostream> using namespace std; int main() { int a,b,t,i,max; while(cin >> a &g ...

  2. 使用curl来调试你的应用

    我们在客户端开发过程中总免不了和后端进行api对接,有时候需要对返回的数据格式进行调试,有时候每次运行客户端来发送请求,这个未免效率太低,这里就来介绍一个好用的工具--curl. curl curl是 ...

  3. background-size做自适应的背景图

    background-size做自适应的背景图 在我们做页面布局的时候往往会遇到这样的情况当我固定一个元素的尺寸,在像元素加入背景的时候发现背景图片的原始尺寸很大,当我把背景图写入时往往超过元素很大一 ...

  4. Java 代码性能优化

    代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是, ...

  5. cpu affinity (亲和性)

    来源:http://www.ibm.com/developerworks/cn/linux/l-affinity.html#download 管理处理器的亲和性(affinity) 为什么(3 个原因 ...

  6. jquery对象的遍历(显示遍历、隐式遍历)

    既然jquery对象是个数组,那么就可以通过遍历来操作.示例如下: <!DOCTYPE html> <html> <head> <meta charset=& ...

  7. 使用PowerDesigner创建mysql数据库表图

    使用PowerDesigner 建数据库表. 一直很忙,没有时间写东西.这次搞点会声会色的,嘿嘿 此技能为项目经理必备技能. 本次主角: 1.在workspace下建立一项目: physical da ...

  8. MySQL 5.5 禁用 innodb

    MySQL 5.5 禁用 innodb 编辑: my.ini 添加: default-storage-engine=MYISAM skip-innodb

  9. 老司机的奇怪noip模拟T2-huangyueying

    2. 黄月英(huangyueying.cpp/c/pas )[问题描述]xpp 每天研究天文学研究哲学,对于人生又有一些我们完全无法理解的思考.在某天无聊学术之后, xpp 打开了 http://w ...

  10. ios 实现在tableViewCell上面添加长按手势 删除该条cell以及列表后台数据等

    自己的代码  需要   把属性更改成自己要使用的 //创建长按手势 在cellForRowAtIndexPath代理方法中 UILongPressGestureRecognizer *longPres ...