需要注意的点就是速度的减少是每次都见到初始速度的F百分比
此外就是定义类型应为double
#include<stdio.h>
#include<math.h>
#include<string>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
int main() {
double h, u, d, f;
double sum;
int day;
while(scanf("%lf%lf%lf%lf", &h, &u, &d, &f) != EOF){
sum = 0;
day = 0;
int flag = 0;
f = f*0.01;//转换百分比
f = u*f;//疲劳下降的值
if(h == 0)
break;
while(sum <= h && sum >=0){
day++;
if(u > 0)
sum += u;
if(sum > h)
break;
sum -= d;
u -= f;
if(sum < 0)
{
flag = 1;//标记成功还是失败
break;
}
}
if(flag)
cout << "failure on day "<< day << endl;
else
cout << "success on day "<< day << endl;
}
return 0;
}