题目大意:蜗牛从井底往上爬,井高H米,它每天能爬U米,每天夜里下滑D,每天它疲劳,每天能爬的jvli减少第一个天能爬的距离百分之F。每天最少不爬也不会为负数。问他能否爬出井,第几天得出结论。
解题思路:当蜗牛在井中(未爬出井,未下滑至比井底还低位置),则进行循环表示蜗牛每天爬的过程,首先往上爬,此时为这一天蜗牛的最大高度,判断是否超过井高,有则跳出循环,然后下滑,判断是否比井底还低,有则跳出循环。然后疲劳后一天能爬的距离减少,最少为0,天数加一。
ac代码:
能爬的距离百分之F。每天最少不爬也不会为负数。问他能否爬出井,第几天得出结论。
解题思路:当蜗牛在井中(未爬出井,未下滑至比井底还低位置),则进行循环表示蜗牛每天爬的过程,首先往上爬,此时为这一天蜗牛的最大高度,判断是否超过井高,有则跳出循环,然后下滑,判断是否比井底还低,有则跳出循环。然后疲劳后一天能爬的距离减少,最少为0,天数加一。
ac代码:
#include <iostream>
using namespace std;
int day;
double U, h, H, D, F, temp;
int main()
{
while (scanf("%lf", &H)!=EOF && H){
scanf("%lf%lf%lf", &U, &D, &F);
day = 1, h = 0;
temp = U * F / 100;
while (h >= 0 && h <= H){
h += U;
if (h > H) break;
h -= D;
if (h < 0) break;
U = U - temp;
if (U < 0) U = 0;
day++;
}
if (h > H)
printf("success on day %d\n", day);
else
printf("failure on day %d\n", day);
}
return 0;
}