AcWing 1289. 序列的第k个数
BSNY 在学等差数列和等比数列,当已知前三项时,就可以知道是等差数列还是等比数列。
现在给你 整数 序列的前三项,这个序列要么是等差序列,要么是等比序列,你能求出第k项的值吗。
如果第k项的值太大,对其取模200709。
#include<bits/stdc++.h> #define MOD 200907 using namespace std; long long a,b,c,n; int qmi(long long x,long long y) { long long w=1; while(y) { if(y&1)w=w*x%MOD; y/=2; x=x*x%MOD; } return w%MOD; } int main() { int t; cin>>t; while(t--) { scanf("%lld %lld %lld %lld",&a,&b,&c,&n); if(b-a==c-b)cout<<a+(b-a)*(n-1)%MOD<<endl; else cout<<a*qmi(b/a,n-1)%MOD<<endl; } return 0; }