URAL 1133 Fibonacci Sequence(数论)
2024-08-25 01:34:03
题意 :给你第 i 项的值fi,第 j 项的值是 fj 让你求第n项的值,这个数列满足斐波那契的性质,每一项的值是前两项的值得和。
思路 :知道了第 i 项第j项,而且还知道了每个数的范围,二分求第 i+1项,然后根据性质求下去,求到第 j 项的时候看看通过二分求出来的值与给定的第j项的值大小关系,来确定下一次二分的值,输出的时候注意方向。
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm> using namespace std ;
#define LL long long int main()
{
LL i,fi,j,fj,n ;
while(~scanf("%I64d %I64d %I64d %I64d %I64d",&i,&fi,&j,&fj,&n))
{
if(i > j)
{
swap(i,j) ;
swap(fi,fj) ;
}
LL start,endd,mid,a,b,c ;
start = -2000000000LL ,endd = 2000000000LL ;
while(start + < endd)
{
mid = (start + endd) / ;
a = fi ;
b = mid ;
for(int k = i+ ; k <= j ; k++)
{
c = a + b ;
a = b ;
b = c ;
if(c > 4000000001LL || c < -4000000001LL)
break ;
}
if(b < fj)
{
start = mid ;
}
else endd = mid ;
}
a = fi ;
b = endd ;
if(n >= i + )
{
for(int k = i + ; k <= n ; k++)
{
c = a+b ;
a = b ;
b = c ;
}
printf("%I64d\n",b) ;
}
else
{
for(int k = i- ; k >= n ; k--)
{
c = b-a ;
b = a ;
a = c ;
}
printf("%I64d\n",a) ;
}
}
return ;
}
最新文章
- 设置DIV块元素在浏览器页面中垂直居中
- [No00004C]软件工程师的创业陷阱:接私活
- nohup不输出日志信息的方法,及linux重定向学习
- bzoj 1467: Pku3243 clever Y 扩展BSGS
- 本机Font字体
- DIV+CSS 网页布局之:三列布局
- LVS单机测试不负载
- TWinControl的消息覆盖函数大全(41个WM_函数和31个CM_函数,它的WndProc就处理鼠标(转发)、键盘(取消拖动)、焦点、和WM_NCHITTEST一共4类消息)
- 分享基于分布式Http长连接框架--架构模型
- 线段树 (区间查询最大 区间求和 区间加)带lazy
- BZOJ_3996_[TJOI2015]线性代数_最大权闭合子图
- VS启动调试速度异常的缓慢问题
- 手机Web 开发中图片img 如何等比例缩放
- eclipse + maven搭建SSM框架
- python 元组中元组转为字典
- 用java进行简单的万年历编写
- Python闭包Closure 2
- matlab 投影
- vscode编辑器配置C语言编译运行环境
- Java编码转换