给你一个正整数 n ,你可以执行下述操作 任意 次: n 加上或减去 2 的某个 幂 返回使 n 等于 0 需要执行的 最少 操作数。 如果 x == 2i 且其中 i >= 0 ,则数字 x 是 2 的幂。请给出代码
时间: 2023-03-10 12:30:06 浏览: 232
delete--number.rar_K._delete namber_delete number_给定n位正整数
5星 · 资源好评率100%
我的代码如下:int get_min_ops(int n) {
int result = 0;
while (n != 0) {
int i = 0;
while (n % (1 << i) == 0) {
i += 1;
}
if (n % (1 << (i - 1)) == 0) {
n -= (1 << (i - 1));
} else {
n += (1 << (i - 1));
}
result += 1;
}
return result;
}
阅读全文