#BS095. 【单层循环while】蜗牛爬树
【单层循环while】蜗牛爬树
说明
有一棵光滑的葡萄树,高度为 ( h ) 分米。一只蜗牛从树底开始向上爬,每分钟可以向上爬 ( 3 ) 分米。
但蜗牛每爬行 ( 1 ) 分钟后必须休息 ( 1 ) 分钟,在休息期间它会向下滑落 ( 1 ) 分米。
当蜗牛在某一次爬升过程中(即某分钟的爬行结束后)到达或超过树顶时,任务即告完成,不再需要额外休息。
请计算蜗牛爬到树顶总共需要多少分钟。
输入格式
输入只有一行,包含一个正整数 ( h )(( 1 \le h \le 1000 )),表示树的高度(单位:分米)。
输出格式
输出一个整数,表示蜗牛爬到树顶所需的总分钟数。
样例
样例输入
17
样例输出
15
样例解释
- 第 1 分钟:爬 3 分米,到 3 分米,休息 1 分钟滑下 1 分米,到 2 分米。
- 第 3 分钟:爬 3 分米,到 5 分米,休息 1 分钟滑下 1 分米,到 4 分米。
- ……
- 第 13 分钟:爬 3 分米,到 14 分米,休息 1 分钟滑下 1 分米,到 13 分米。
- 第 15 分钟:爬 3 分米,到 16 分米(未达 17)。
- 等等,检查正确性:实际到达 17 需要多少?我们按规律:每个完整的 2 分钟周期净上升 2 分米(3 - 1),但最后若在爬升阶段直接到达则不需要休息。
求解方式:设爬升次数为 ( x )(每分钟爬一次),则净上升为 ( 2(x-1) + 3 )(最后一次爬升不滑落)或 ( 2x )(如果未能在爬升中达到)。更严谨的是模拟或公式。本题给出样例 h=17 输出 15,因为过程如下:
前 14 分钟(7 个周期)净上升 14 分米(每 2 分钟 2 分米),此时高度 14 分米;
第 15 分钟爬 3 分米到 17 分米,到达树顶,停止。总时间 15 分钟。
因此样例输出 15 符合。