## @[MarsTraveller](/user/735797) AC代码
```c
#include <bits/stdc++.h>
using namespace std;
int main(){
long long x,a,b,n;
scanf("%lld",&n);long long tx;
while(n--){
scanf("%lld%lld%lld",&x,&a,&b);
if(a==0||x==0){
if(b==0){
printf("0\n");continue;
}
}
if(a==1){
if(!b){
cout<<x<<endl;
}
else{
cout<<x%b-b<<endl;
}
continue;
}
if(b==0){
printf("%lld\n",x);continue;
}
tx=x;
if(a*x-b>=x){
printf("%lld\n",x);continue;
}
if((a*x-b)-((a*x-b)*a-b)==1){
printf("-1\n");continue;
}
else{
for(int i=1;x>=0;i++){
x=a*x-b;
}
printf("%lld\n",x);
}
}
return 0;
}
```
by Fubaogege @ 2024-03-19 20:39:11
@[Fubaogege](/user/759940) 具体思路是什么
by MarsTraveller @ 2024-03-19 20:42:28
@[MarsTraveller](/user/735797) [某人的题解](https://www.luogu.com/article/fgorwq9x)
by Fubaogege @ 2024-03-19 20:45:30
@[Fubaogege](/user/759940) 那我这个有什么问题吗
by MarsTraveller @ 2024-03-19 20:57:15
@[MarsTraveller](/user/735797)
```c
if(a==1){
if(!b){
cout<<x<<endl;
}
else{
cout<<x%b-b<<endl;
}
continue;
}
```
试一试
by Fubaogege @ 2024-03-19 21:00:31
@[Fubaogege](/user/759940) 过了,但这个好像和我原来的没区别
by MarsTraveller @ 2024-03-19 21:18:09
@[Fubaogege](/user/759940) 不是很理解
by MarsTraveller @ 2024-03-19 21:21:18
@[Fubaogege](/user/759940) 理解了
```cpp
if(a == 1)
{
big t = floor(x*1.0/b+1);
printf("%lld\n",x-t*b);
continue;
}
```
by MarsTraveller @ 2024-03-19 21:29:04