#MQCwmb202603. 宣威火腿的切分Cutting Xuanwei Ham

宣威火腿的切分Cutting Xuanwei Ham

宣威火腿的切分 (Cutting Xuanwei Ham)

时间限制: 1.0s
内存限制: 256MB

【题目背景】

宣威火腿驰名中外,其制作工艺精湛。在准备一桌丰盛的云南宴席时,大厨需要将一整块重达 NN 克的火腿精确地切分成若干个 1 克的小块。

【问题描述】

切分火腿是一个力气活。大厨有一套特殊的切分规则:

  1. 如果当前火腿块的重量 xx 小于 2 克,则不需要再切分。
  2. 如果当前火腿块的重量 x2x \ge 2 克,大厨必须将其切成两块,重量分别为 x/2\lfloor x/2 \rfloor(下取整)和 x/2\lceil x/2 \rceil(上取整)。
  3. 每次进行上述切分操作,大厨消耗的体力值等于当前这块火腿的重量 xx

请问,大厨将这块 NN 克的火腿全部切成 1 克的小块,总共需要消耗多少体力值?

【输入格式】

输入只有一个整数 NN (1N10171 \le N \le 10^{17}),表示火腿的初始重量。

【输出格式】

输出一个整数,表示总共消耗的体力值。

【样例输入 1】

3

【样例输出 1】

5

【样例输入 2】

100

【样例输出 2】

672

【提示/解释】

样例 1 解释:

初始重量为 3,切分为 3/2=1\lfloor 3/2 \rfloor = 13/2=2\lceil 3/2 \rceil = 2。消耗体力 3。 得到的 1 克块不需要再切。 得到的 2 克块切分为 2/2=1\lfloor 2/2 \rfloor = 12/2=1\lceil 2/2 \rceil = 1。消耗体力 2。 总体力:3+2=53 + 2 = 5

数据范围:NN 最高可达 101710^{17}