ACM 之 A - The Snail

Description

A snail is at the bottom of a 6-foot well and wants to climb to the top. The snail can climb 3 feet while the sun is up, but slides down 1 foot at night while sleeping. The snail has a fatigue factor of 10%, which means that on each successive day the snail climbs 10% * 3 = 0.3 feet less than it did the previous day. (The distance lost to fatigue is always 10% of the first day's climbing distance.) On what day does the snail leave the well, i.e., what is the first day during which the snail's height exceeds 6 feet? (A day consists of a period of sunlight followed by a period of darkness.) As you can see from the following table, the snail leaves the well during the third day.
Day Initial Height Distance Climbed Height After Climbing Height After Sliding
1 0 3 3 2
2 2 2.7 4.7 3.7
3 3.7 2.4 6.1 -
Your job is to solve this problem in general. Depending on the parameters of the problem, the snail will eventually either leave the well or slide back to the bottom of the well. (In other words, the snail's height will exceed the height of the well or become negative.) You must find out which happens first and on what day.

Input

The input file contains one or more test cases, each on a line by itself. Each line contains four integers H, U, D, and F, separated by a single space. If H = 0 it signals the end of the input; otherwise, all four numbers will be between 1 and 100, inclusive. H is the height of the well in feet, U is the distance in feet that the snail can climb during the day, D is the distance in feet that the snail slides down during the night, and F is the fatigue factor expressed as a percentage. The snail never climbs a negative distance. If the fatigue factor drops the snail's climbing distance below zero, the snail does not climb at all that day. Regardless of how far the snail climbed, it always slides D feet at night.

Output

For each test case, output a line indicating whether the snail succeeded (left the well) or failed (slid back to the bottom) and on what day. Format the output exactly as shown in the example.

Sample Input

6 3 1 10
10 2 1 50
50 5 3 14
50 6 4 1
50 6 3 1
1 1 1 1
0 0 0 0

Sample Output

success on day 3
failure on day 4
failure on day 7
failure on day 68
success on day 20
failure on day 2

理解:

題目讀懂了這道題還是很簡單的 , 就是蝸牛爬墻問題 , 四個輸入數據分別是 :
離地高度 , 白天爬的距離 ( 有疲勞值 ) , 晚上下滑距離 , 疲勞值 . 縮減只會按照第一天的縮減 , 即每一天都減去第一天能爬的距離乘以疲勞值.

代碼部分

#include<iostream>
using namespace std;
double h,u,d,f;
int main()
{
    while(cin>>h>>u>>d>>f)
    {
        if(h==0)
            return 0;
        double fall=u*f/100,now=0;
        int u1=0,day=0;
        while(now>=0&&now<=h)
        {
            day++;
            if(u1==1&&u-fall>=0)
            {
                u-=fall;
            }
            if(u1==1&&u-fall<0)
            {
                u=0;
            }
            if(u1==0)
            {
                u1=1;
            }
            now+=u;
            if(now>h)
            {
                cout<<"success on day "<<day<<endl;
                break;
            }
            now-=d;
            if(now<0)
            {
                cout<<"failure on day "<<day<<endl;
                break;
            }
        }
    }
    return 0;
}

意見反饋 || 任何建議

聯系我(新浪)
郵箱:qianlizhihao@gmail.com

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,934評論 0 23
  • 轉眼間,球寶就要踏入屬于他的學習生涯。根據我的經驗,他至少要上到24歲以上。而今年他還不到三周歲。古時 有語:寒窗...
    慮善慎為閱讀 194評論 0 0
  • 今天的晨讀分享的是《瞎吃:最好的節食就是你根本不知道自己在節食》這本書,書中給出的實用技巧:控制攝入量,選擇低熱低...
    梁明月創業筆記閱讀 794評論 30 36
  • 好暈 居然不小心被我刪掉了 這次花的是我最愛的又很有負擔的高熱量甜甜圈 問題:高光和立體感還有陰影的畫法,怎么樣深...
    yuyuyuy閱讀 164評論 4 2
  • "あなたを見つけた" 關于氣味 奇怪最近鼻子特別敏銳 雖然分辨不了香菜的味道 但卻能在你還未出現時 知道 是你 愛...
    周阿欠想吟詩閱讀 167評論 0 0