首页 > 试题广场 >

二进制求和

[编程题]二进制求和
  • 热度指数:2165 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个用字符串表示的二进制数,返回他们的和。

数据范围:字符串长度满足 ,字符串中只含有 0 和 1,且保证除 0 以外的二进制数没有前导零的情况。
示例1

输入

"101","1"

输出

"110"
示例2

输入

"0","1"

输出

"1"
示例3

输入

"1","1"

输出

"10"
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param A string字符串 
 * @param B string字符串 
 * @return string字符串
 */
function binaryAdd( A ,  B ) {
    // write code here
    //利用大数加法
    let f=0;
    let sum=0;
    let str='';
    let maxLength = Math.max(A.length,B.length);
    let a = A.padStart(maxLength,0);
    let b = B.padStart(maxLength,0);
    for(let i=maxLength - 1;i>=0;i--){
        sum = parseInt(a[i])+parseInt(b[i])+f;
        f=Math.floor(sum/2);//遇2则进位
        str = sum%2+str;
    }
    if(f==1){
        str = f+str;
    }
    return str;
}
module.exports = {
    binaryAdd : binaryAdd
};

发表于 2021-11-15 15:03:03 回复(1)

问题信息

难度:
1条回答 3078浏览

热门推荐

通过挑战的用户

查看代码