zoukankan      html  css  js  c++  java
  • URAL 1133 Fibonacci Sequence(数论)

    题目链接

    题意 :给你第 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 + 1 < endd)
            {
                mid = (start + endd) / 2 ;
                a = fi ;
                b = mid ;
                for(int k = i+2 ; 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 + 1)
            {
                for(int k = i + 2 ; k <= n ; k++)
                {
                    c = a+b ;
                    a = b ;
                    b = c ;
                }
                printf("%I64d
    ",b) ;
            }
            else
            {
                for(int k = i-1 ; k >= n ; k--)
                {
                    c = b-a ;
                    b = a ;
                    a = c ;
                }
                printf("%I64d
    ",a) ;
            }
        }
        return 0 ;
    }
    View Code
  • 相关阅读:
    linux中nc命令
    Centos6.5 安装zabbix3(收藏,非原创)
    紀念
    算法学习资源收集
    一道奇怪的求和题
    P5717 题解
    P1424 刷题记录
    P1888 题解
    P1422 刷题记录
    P1055 题解
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/4038426.html
Copyright © 2011-2022 走看看