UVA 573

来源:互联网 发布:嵌入式linux简介 编辑:程序博客网 时间:2024/06/05 17:47

题目大意:蜗牛从井底往上爬,井高H米,它每天能爬U米,每天夜里下滑D,每天它疲劳,每天能爬的jvli减少第一个天能爬的距离百分之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);elseprintf("failure on day %d\n", day);}return 0;}
原创粉丝点击