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
3 5 -1 4 5
12
 #include <iostream>
using namespace std;
const int oo=;
int now;
__int64 i,fi,j,fj,n;
__int64 l=-oo,r=oo,mid,sum[];
int main()
{
cin >> i >> fi >> j >> fj >> n;
if (i > j)
{
swap(i,j);
swap(fi,fj);
}//进行调整,使得i比j考前
while (l <= r)
{//进行二分
mid=(l+r)>>;//先取中间值,mid表示第i+1个数的值
sum[]=fi;
sum[now=]=mid;
int k=i+,flag=-;
while (k <= j)
{//计算加法运算次数
now=(now+)%;
++k;
sum[now]=sum[(now+)%]+sum[(now+)%];
if (sum[now] > oo) flag=;//向上超界了用1进行标记
else if (sum[now] < (-oo)) flag=-;//超出了最低限用-1进行标记
if (flag != -) break;//超界了就不需要在进行运算了
}
if (flag == -)
{
if (sum[now] > fj) flag=;//没有超界但是大于fj表示mid开大了
else if (sum[now] < fj) flag=-;//没有超界但是运算到了j小于fj表示mid开小了
else flag=;//mid开正确了
}
if (flag == ) r=mid-;//开大了重置r
else if (flag == -) l=mid+;//开小了总之L
else if (flag == ) break;//正好则跳出
}
sum[]=fi;
sum[now=]=mid;//进行模拟找到第n个数
if (i < n)
{
int k=i+;
while (k <= n)
{
now=(now+)%;
++k;
sum[now]=sum[(now+)%]+sum[(now+)%];
}
}
else if (i > n)
{
int k=i-;
while (k >= n)
{
now=(now+)%;
--k;
sum[now]=sum[(now+)%]-sum[(now+)%];
}
}
else --now;
cout << sum[now] << endl;
return ;
}

***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. CodeForces 710B Optimal Point on a Line

    递推. 先对$a[i]$进行从小到大排序. 然后计算出每个点左边所有点到这个点的距离之和$L[i]$,以及右边每个点到这个点的距离之和$R[i]$. 这两个都可以递推得到. $L\left[ i \r ...

  2. 让webstorm支持新建.vue文件

    1. 首先安装vue插件,安装方法: file-->setting  -->  plugin  ,点击plugin,在内容部分的左侧输入框不用输入任何东西,直接点击下图中的按钮. 如下图所 ...

  3. metasploit nessus & db_autopwn

    nessus官网:https://www.tenable.com/products/nessus-vulnerability-scanner 下载地址:https://www.tenable.com/ ...

  4. 解决IE兼容总汇【转】

    转载声明: 藏羚羊 2014年04月16日 于 前端开拓者 发表 本文固定链接: http://www.frontopen.com/2552.html 1. <meta http-equiv=“ ...

  5. 用ftplib爆破FTP口令

    #coding:utf-8 #author:jwong import ftplib def bruteLogin(hostname,passwordFile): with open(passwordF ...

  6. [kuangbin带你飞]专题六 最小生成树 POJ 1287 Networking

    最小生成树模板题 跑一次kruskal就可以了 /* *********************************************** Author :Sun Yuefeng Creat ...

  7. 通过一个表的id同时查询多个表的数据

    'select c.字段名,x.字段名 as 改为新的显示名,x.字段名 from 表名1 b,表名2 c,表名3 x where b.字段id=' . $id . ' and b.`字段id`=c. ...

  8. CNN计算过程

  9. javaMail邮件发送的简单实现

    package com.test.mail; import java.util.Properties; import javax.mail.Message; import javax.mail.Ses ...

  10. OpenCV程序在Debug时出现「PDB文件无法加载」的一个解决方法

    这几天毕设要用到OpenCV,按照网上的教程来搭建开发环境. 用的是OpenCV 3.0 beta + Visual Studio Community 2013.我的系统64位是Win 8.1,但在加 ...