需要特别讨论最后一次行程的情况
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,b,f,k,c,number;
while(cin>>a>>b>>f>>k)
{
c=b-f; //c表示剩余油量
number=0;
for(int i=1; i<=k&&c>=0; ++i)
{
if(i%2)
{
if(k-i)
{
if(c>=2*(a-f))
c-=2*(a-f);
else
{
c=b-2*(a-f);
number++;
}
}
else
{
if(c<a-f)
{
c=b-(a-f);
number++;
}
}
}
else
{
if(k-i)
{
if(c>=2*f)
c-=2*f;
else
{
c=b-2*f;
number++;
}
}
else
{
if(c<f)
{
c=b-f;
number++;
}
}
}
}
if(c<0)
number=-1;
cout<<number<<endl;
}
return 0;
}