题目描述
一天wjk正在玩英雄联盟,他玩的打野,正在和一只装备了迷离风衣的野怪战斗。
这只野怪血量是 X ,这只野怪很奇怪,当野怪受到攻击时,根据野怪的血条,会发生以下情况:
如果野怪的血条变到 1 ,当wjk普攻一下就会击杀它并且获得他的经验值 。
如果野怪的血条 X 大于 1 ,当wjk普攻一下,野怪不会掉血,但是,会出现两个新的怪物,每个怪物的生命值都是 ⌊X/2⌋ 。
⌊x⌋表示对x向下取整,即不超过x的最大整数
当所有野怪的血条变为 0 ,wjk 就可以得到这个野怪的所有经验值。
求 wjk 在得到这个野怪的经验值,他最少需要普攻几次。
输入
野怪的血量
一个整数 \(X\) (\(1 \leq X \leq 10000\))
输出
wjk 要得到这个野怪的经验值,他最少需要普攻几次
提示
血量大于1的野怪每次分裂产生的野怪如果血量大于1被攻击后可以再次分裂
对 X = 3 的解释:
3
1:普攻1次分裂,[3/2]=1
1 1 2:普攻2次收割
如果 X = 4:
4
1: 普攻1次分裂,[4/2]=2
2 2
2:普攻2次分裂,[2/2]=1
1 1 1 1 3:普攻4次收割