c++1072: 青蛙爬井
·
问题描述:
题目描述
有一口深度为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为例,来给大家讲解:
| 天数 | 白天上升 | 晚上下降 | 剩余距离 |
| 1 | 2 | 1 | 9 |
| 2 | 2 | 1 | 8 |
| 3 | 2 | 1 | 7 |
| 4 | 2 | 1 | 6 |
| 5 | 2 | 1 | 5 |
| 6 | 2 | 1 | 4 |
| 7 | 2 | 1 | 3 |
| 8 | 2 | 1 | 2 |
| 9 | 2 | 上岸了 | 上岸了 |
我们可以看到,终止条件:第8天爬完之后剩余的距离为2,那么第九天白天就能够完全爬够,不用晚上下降了。
终止条件代码如下:
while(high!=up)
{
day_number++;
high-=up;
high+=down;
}
下面画这个是第九天(最后一天爬的)代码:
day_number=day_number+1;//最后一天剩余的high一下子up就能爬完了。
好啦,希望能帮助到大家!
更多推荐



所有评论(0)