题意:
解法:
显然优先进行乘法,
因为a>=2,所以最多进行log次,
注意判断x*a<=(y-1)时,x*a可能会爆longlong,
因此要改为x<=(y-1)/a.
code:
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxm=2e5+5;
signed main(){
ios::sync_with_stdio(0);cin.tie(0);
int x,y;cin>>x>>y;
int a,b;cin>>a>>b;
y--;
int ans=0;
while(y/a>=x&&x*a<x+b){
x*=a;
ans++;
}
ans+=(y-x)/b;
cout<<ans<<endl;
return 0;
}