hduojA sequence of numbers

水题快速幂http://acm.hdu.edu.cn/showproblem.php?pid=2817

根据条件判断是等差还是等比就ok了;

Talk is cheap. Show me the code.

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
long long fastpow(long long a,long long b)
{
    long long base=a;//底数
    long long res=1;//结果
    while(b)
    {
        if(b&1)//如果这一位是,就要对结果进行累乘了
            res=(base*res)%m;

        base=(base*base)%m;//递推运算,a^2->a^4->a^8->a^16
        b=b>>=1;//进行位移运算
    }
    return res;
}
int main()
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    long long n;
    cin>>n;
    while(n--)
    {
        ll a,b,c,k;
        cin>>a>>b>>c>>k;
        ll ans=0;
        if(b-a==c-b)
        {
            ll d=b-a;
            ans=(a+(k-1)*d)%200907;
            cout<<ans<<endl;
        }
        else if(b/a==c/b)
        {
            ll q=b/a;
            ans=(a*fastpow(q,k-1))%200907;
            cout<<ans<<endl;
        }
    }
    return 0;
}

 

posted @ 2022-05-03 19:12  江上舟摇  阅读(9)  评论(0编辑  收藏  举报