/**
* kaggle 476
* 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.
* @author yfmei
*
*/
public class NumberCompletement {
public static void main(String[] args) {
char[] chr = Binary.toBin(2);
char[] afterChr = new char[chr.length] ;
int i = 0;
for(char c : chr){
c = (char) ('0' == c ?'1':'0');
afterChr[i] = c;
i++;
}
int n = Binary.toInt(afterChr);
System.out.println(n);
}
/**
* 二进制转换成十进制的方法是
* 1、从最低位(右边)开始计算 : 位上的值 * 2^(位数-1)
* @param binaryStr
* @return
*/
public static int toInt(char[] binChr) {
int sum = 0;
for(int i = binChr.length-1,j = 1;i>=0;i--,j++){
int num = Integer.parseInt(""+binChr[i]);
sum += num*Math.pow(2,j-1);
}
return sum;
}
/**
* 十进制转换成二进制
* @param x
* @return
*/
public static char[] toBin(int x) {
String xStr = "" ;
while(x > 0){
xStr = ((x %2 == 0?"0":"1")+xStr);
x = x / 2;
}
return xStr.toCharArray();
}
}
Number Completement
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 在有添加或删除tableview一行的时候,一般报这个错的原因都是,[tableView deleteRowsAt...
- 1. 概念 2. 具体实现 代码实现获得应用的Verison号: 获得build号:
- 暴力破解 递归 类似于斐波那契数列if (n == 0)return 1;if (n % 2 ==1)return...