问题 B: 二进制数

内存限制:256 MB 时间限制:2 S
题面:传统 评测方式:文本比较 上传者:
提交:260 通过:75

题目描述

     zz 非常喜欢数学。这就是为什么当他感到无聊时,他会玩一些数字来执行一些操作。zz 得到一个二进制数 x,并希望将这个数字变成 1。当 x 不等于 1 时,zz 重复以下操作:如果 x 是奇数,则他将x 加 1 ,否则他将 x 除以 2。zz 知道,对于任何正整数,该过程都会在有限的时间内结束。zz 想知道他应该执行多少次才能将x变成1?

输入格式

第一行包含二进制系统中的正整数 x。保证 x 的第一个数字与零不同,其位数不超过 106

输出格式

打印所需数量的操作。
Examples
Input
1
Output
0
Input
1001001
Output
12
Input
101110
Output
8
注意
让我们考虑第三个样本。数字 101110 是偶数,这意味着我们应该将其除以 2。除法后,得到一个奇数10111,并加一。数字 11000 可以连续三次除以 2,得到数字 11。剩下的就是将数字增加 1(我们得到 100),然后连续两次将其除以 2。结果,我们得到 1。
NOTE

输入样例 复制

101110

输出样例 复制

8

分类标签