酷代码 AI
菜单

给定一个数n,你可以进行若干次操作,每次操作可以翻转n的二进制表示下的某一位,即将0变成1,1变成0。 请问:至少需要多少次操作,才能将n变成n−1。 输入 一个正整数n。(1<n≤10^9) 输出 输出最少的操作次数。 样例输入 复制 10 样例输出 复制 2

```python # 读取输入的正整数n n = int(input()) # 计算 n 和 n - 1 的异或结果 xor_result = n ^ (n - 1) # 统计异或结果中 1 的个数 count = bin(xor_result).count('1') # 输出最少的操作次数 print(count) ``` [2026-01-23 19:42:02 | AI问答 | 81点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多