• hdu 2718 A sequence of numbers


    题意:

            给出a,b,c,k,四个数;由 a,b,c构成一个非递减的等差数列或等比数列;求数列的第k个值;

            其中等比数列需要用到快速幂的算法;

    #include<stdio.h>
    #define mod 200907
    long long multy(long long q,long long n)//快速幂运算
    {
        long long cnt=n;
        long long base=q;
        long long ret=1;
        while(cnt>0)
        {
            if(cnt&1)
                ret=ret*base%mod;
            cnt=cnt>>1;
            base=base*base%mod;
        }
        return ret;
    }
    int main()
    {
        int _case,ans;
        long long a,b,c,k;
        scanf("%d",&_case);
        while(_case--)
        {
            scanf("%I64d %I64d %I64d %I64d",&a,&b,&c,&k);
            //scanf("%lld %lld %lld %lld",&a,&b,&c,&k);
            if(c-b==b-a)
            {
                long long d=(c-b)%mod;
                ans=(a%mod+(k-1)%mod*d%mod)%mod;
                //printf("%d\n",ans)
            }
            else
            {
                long long q=b/a%mod;
                ans=(a%mod)*multy(q,k-1)%mod;
            }
            printf("%d\n",ans);
        }
        return 0;
    }

    注意:

           用lld输入的时候,Wrang了好多次!!!!!!!!!!!!!!

  • 相关阅读:
    js实现去重字符串
    js查找水仙花数
    js实现找质因数
    jQuery插件(多级菜单)
    Pycharm安装常见问题
    Python-Excel循环写入
    1110 距离之和最小 V3
    1109 01组成的N的倍数
    1393 0和1相等串
    1043 幸运号码
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3106023.html
Copyright © 2020-2023  润新知