题目描述
上帝养了一头奶牛,但是有一天奶牛偷吃了上帝草药,上帝十分生气于是奶牛必须要去地狱接受惩罚,上帝给了奶牛一个长达n的刑期但是同样允许奶牛对刑期进行最多操作log2(n)+1次,每次操作可以交换刑期的二进制形式下任意的两个位置上的数字,但是不能改变原来的二进制数的位数(不能有前导零),奶牛自然希望可以尽可能多的减刑,请问出奶牛最多可以减少多少刑期?
输入
一个正整数n表示奶牛当前刑期。(n<2^31)
输出
一个整数表示奶牛最多可以减少的刑期
样例输入 Copy
14
样例输出 Copy
3
提示
只需要交换第1位和第3位,14(1110)-->11(1011),14-11=3。