首页 > 代码库 > LeetCode打卡第1天——Number Complement
LeetCode打卡第1天——Number Complement
题:
给定一个正整数,输出其补码。 补码策略是翻转其二进制表示的位。
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.
第一次提交错误思路:将输入整数与二进制位为全1的数相异或。
错误原因,:输入整数和所设整数二进制位数不等,多出来的高位异或后全为1,导致返回结果错误。
第二次,用移位的方法计算出num的二进制位数i,用pow(2,i)-1求出一个二进制位数为i的且全为1的数,跟num进行异或运算,AC通过。
代码如下:
接着用JavaScript写。
JavaScript的思路跟C一样,不过,要十分注意JavaScript中的pow()方法的调用是通过Math.pow()来实现的。其中,要特别注意Math的首字母大写这个问题,我提交的时候就犯了这个错误。
不多说,上代码:
LeetCode打卡第1天——Number Complement
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。