这次A的题全是亮哥敲的,丧失也出了不少思路,基本就我在躺,得让自己的思路和代码能力迅速提高起来,尽自己最大的力量吧。

比赛后又敲了一遍。

A.给前三个数求第k项,需判断是等差还是等比数列。

#include<iostream>
#include<stdio.h>
using namespace std;
const long long mod = 200907;
long long a[4];
long long sort_pow(long long k, long long m){
    if(k == 0)
        return 1;
    if(k % 2){
        long long uu = sort_pow(k/2, m);
        return (uu*uu*m) % mod;
    }else{
        long long uu = sort_pow(k/2, m);
        return (uu*uu) % mod;
    }
}
int main(){
    long long t;
    scanf("%I64d", &t);
    while(t--){
        for(long long i = 0; i < 3; i++){
            scanf("%I64d", &a[i]);
        }
        long long k;
        scanf("%I64d", &k);
        if(a[2] - a[1] == a[1] - a[0]){
            printf("%I64d\n", ((a[2] -a[1]) % mod *(k-1)+a[0]) %mod);
        }else{
            printf("%I64d\n", (a[0] * sort_pow(k-1,a[1]/a[0]))% mod);
        }
    }

}
View Code

相关文章:

  • 2022-12-23
  • 2022-01-16
猜你喜欢
  • 2021-09-07
  • 2022-01-28
相关资源
相似解决方案