#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 符合。