一开始用了int64,不知道为什么一直报错。
#include <iostream>
using namespace std;
int t,s;
double n,m,v,k;
void outt(int x)
{
cout << x << endl;
}
int main()
{
cin >> t;
while (t--)
{
cin >> n >> m >> v >> k;
if (n<=m) outt(0);
else
if (m<=v||k<=1) outt(-1);
else
{
s=0;
if ((m-v)*k==m) outt(-1);
else
while (1)
{
s++;
if (m<=v)
{
outt(-1);
break;
}
m=(m-v)*k;
if (m>=n)
{
outt(s);
break;
}
}
}
}
return 0;
}