476. Number Complement(补数)
2024-09-08 00:33:41
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.
Note:
- The given integer is guaranteed to fit within the range of a 32-bit signed integer.
- You could assume no leading zero bit in the integer’s binary representation.
Example 1:
Input: 5
Output: 2
Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.Example 2:
Input: 1
Output: 0
Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0. - 思路:给定一个正整数,输出它的补数。补数的策略是通过翻转二进位表示。
- 1.求出该数的二进制位数;
2.通过给定数num和相同位数的二进制数(全为1)进行异或,即可求出补数。 public int findComplement(int num) { int ans = 0;//the count of the num's bits
int temp = num;//copy of the num
while(temp != 0){
ans++;
temp /= 2;
}
return num ^ (int)(Math.pow(2,ans)-1);
}pow() 函数用来求 x 的 y 次幂(次方),其原型为:
double pow(double x, double y);
最新文章
- RMS问题整理
- MyBatis之代理开发模式
- linq小笔记;
- reduce()
- mac office
- ubuntu 14.04 下安装jdk8及 smartgithg
- Linux之用户管理
- WIN7 如何关闭Aero
- 利用servlet做转发,实现js跨域解决同源问题
- MapReduce输出格式
- 乐视手机查看运行内存方法、EUI(Eco User Interface)乐视系统查看手机运行内存方法
- Android 加速Gradle构建项目
- 开箱即用 - Grunt合并和压缩 js,css 文件
- S2-032代码执行
- FusionWidgets DrawingPad图
- 如何实现从Java入门到服务端项目开发的进阶?
- centos7虚拟机克隆后设置固定IP
- javascript的单例/单体模式(Singleton)
- AFNetWorking能做什么
- 嵌套的ng-repeat双层循环,内层如何获取外层的$index?