问题标题: 酷町堂:6370

0
0
已解决
被禁言 张皓轩
张皓轩
中级光能
中级光能

酷酷最近在学等比数列,酷酷知道若一个数列是等比数列,只要给出数列的前三项就能判断出来,进而可以求出该数列的第k项的值,现让你输出该值对200907取模的结果。

10分代码:

#include<iostream>

using namespace std;

long long cnt;

long long db(long long a,long long b,long long c,long long k){

if(cnt==k-1){

cnt=0;

return a%200907;

}

cnt++;

return db(a*b/a,b*b/a,c*b/a,k);

}

int main(){

long long n,a,b,c,k;

cin>>n;

while(n--){

cin>>a>>b>>c>>k;

cout<<db(a,b,c,k)<<endl;

cnt=0;

}

}

求错误点


0
已采纳
汪宇航
汪宇航
新手启示者
新手启示者

你的错误在于需要高精度,假如b/a=1000,要算第10^9个数,明显超long long,建议使用高精度乘法

我要回答