#Y1268. 【45课】【3275】 数位翻转

【45课】【3275】 数位翻转

题目描述

给定一个整数 nn,你可以进行若干次操作。

每次操作可以翻转 nn 的二进制表示中的某一位,即:

  • 00 变成 11
  • 11 变成 00

请问:至少需要多少次操作,才能将 nn 变成 n1n-1

输入格式

输入一个正整数 nn

1<n1091 < n \le 10^9

输出格式

输出最少需要的操作次数。

样例

10
2

样例解释

1010 的二进制表示为:10101010

99 的二进制表示为:10011001

因此最少需要两步:

1010100010011010 \rightarrow 1000 \rightarrow 1001

数据范围

1<n1091 < n \le 10^9