573 The Snail

題目連結

題目敘述

一隻蝸牛嘗試從一口井爬出來,每行包含 4 個數 HUDF

  • H : 井的深度
  • U : 白天爬升高度
  • D : 晚上滑落高度
  • F : 疲勞係數(百分比)

請模擬蝸牛每天的運動,判斷第幾天成功爬出或失敗滑落。

解題思路

while 迴圈模擬, height 紀錄目前爬升高度, up 紀錄白天爬升高度,每次天數加一並更新 heightup

程式碼

#include <bits/stdc++.h>
using namespace std;

int main() {
    int H, U, D, F;
    while (cin >> H >> U >> D >> F && (H || U || D || F)) {
        double height = 0, up = U;
        int day = 0;
        string success = "failure";
        while (height >= 0) {
            day += 1;
            height += up;
            up -= U * F / 100.0;
            if (up < 0) up = 0;
            if (height > H) {
                success = "success";
                break;
            }
            height -= D;
        }
        cout << success << " on day " << day << '\n';
    }
}