问题描述:

题目描述

有一口深度为high米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬up米,夜里则顺井壁向下滑down米,若青蛙从某个早晨开始向外爬,对于任意指定的high、up和down值(均为自然数),计算青蛙多少天能够爬出井口?

输入

输入3个正整数:high、up和down。

输出

输出一个整数,表示天数。输出单独占一行。

代码实现:

    #include<iostream>
    using namespace std;
    #include<vector>

    int main()
    {
        int high,up,down;
        cin>>high>>up>>down;
        int day_number=0;
        while(high!=up)
        {
            day_number++;
            high-=up;
            high+=down;
        }
        day_number=day_number+1;//最后一天剩余的high一下子up就能爬完了。
        cout<<day_number<<endl;
    }

效果展现:

思路解析:

我1现在以输入10,2,1输出为9为例,来给大家讲解:

天数  白天上升晚上下降剩余距离
1219
2218
3217
4216
5215
6214
7213
8212
92上岸了上岸了

我们可以看到,终止条件:第8天爬完之后剩余的距离为2,那么第九天白天就能够完全爬够,不用晚上下降了。

终止条件代码如下:

 while(high!=up)
        {
            day_number++;
            high-=up;
            high+=down;
        }

下面画这个是第九天(最后一天爬的)代码:

 day_number=day_number+1;//最后一天剩余的high一下子up就能爬完了。

好啦,希望能帮助到大家!

更多推荐