解题思路:我也看不懂

注意事项:

参考代码:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const ll N=200907;


// 计算等差数列的第k项:a + (k-1)*d % N

ll dengcha(ll a1, ll a2) {

    ll res = 0;

    a2 %= N; // 防止a2过大

    

    while (a1 > 0) {

        if (a1 % 2 == 1) {

            res = (res + a2) % N;

        }

        a2 = (a2 * 2) % N;

        a1 /= 2;

    }

    

    return res;

}


// 快速幂计算等比数列的第k项:q^(k-1) % N

ll dengbi(ll a1, ll a2) {

    ll res = 1;

    a2 %= N; // 防止a2过大

    

    while (a1 > 0) {

        if (a1 % 2 == 1) {

            res = (res * a2) % N;

        }

        a2 = (a2 * a2) % N;

        a1 /= 2;

    }

    

    return res;

}


int main() {

    ll t;

    cin >> t;

    while (t--) {

        ll x, y, z, k;

        cin >> x >> y >> z >> k;

        ll a = x;

        ll d = y - x;

        ll q = y / x;

        ll ak;

        

        if (z - y == y - x) {

            // 等差数列:a + (k-1)*d

            ak = (a + dengcha(k-1, d)) % N;

        } else {

            // 等比数列:a * q^(k-1)

            ak = (a * dengbi(k-1, q)) % N;

        }

        

        cout << ak << endl;

    }

    return 0;

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论