热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LintCode1218.计算补数的JavaScript算法

本题要求给定一个正整数,计算其补数。补数是指将该数字的二进制表示逐位取反,然后转换回十进制得到的新数。

问题描述

给定一个正整数,输出其补数。补数是指将该数字的二进制表示逐位取反,然后转换回十进制得到的新数。

注意事项

  • 给定的整数保证在32位有符号整数的范围内。
  • 假设一个正整数的二进制表示不包含前导零。

示例

示例1: 输入: 5 输出: 2 说明: 5的二进制表示为101(不包含前导零),其补数为010,因此输出2。 示例2: 输入: 1 输出: 0 说明: 1的二进制表示为1(不包含前导零),其补数为0,因此输出0。

解决方案

补数是二进制中的一种概念,可以通过以下步骤实现:

  1. 将给定的整数转换为二进制字符串。
  2. 逐位取反,即将'0'变为'1',将'1'变为'0'。
  3. 将取反后的二进制字符串转换回十进制整数。

具体实现如下:

function findComplement(num) { return parseInt(num.toString(2).split('').map(bit => bit === '0' ? '1' : '0').join(''), 2); }

运行结果

运行结果1运行结果2


推荐阅读
author-avatar
laladuosahdaj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有