首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  算法

20180321 今日算法

  •  
  •   brelian · 62 天前用 Android 发布 · 1505 次点击
    这是一个创建于 62 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Given two binary strings, return their sum (also a binary string).

    For example,
    a = "11"
    b = "1"
    Return "100".
    19 回复  |  直到 2018-03-21 23:08:36 +08:00
        1
    zagreb   62 天前
    return bin(int(a, 2) + int(b, 2))[2:]
        2
    zqqian   62 天前 via Android
    小学生算术
        3
    brelian   62 天前 via Android
    @zqqian 愿闻其详?
        4
    mengyaoss77   62 天前
    声明一个足够长的数组,然后按位加放进去。。
        5
    hjdtl   62 天前
    (parseInt(a,2)+parseInt(b,2)).toString(2)
        6
    zqqian   62 天前 via Android
    @brelian 就是最朴素的模拟,从右向左按位加,像小学生算术那样
        7
    kaifeii   62 天前 via iPhone
    题目应该是有很长位数的。除了按位加以外有一个位运算做加法的方法,异或后移位
        8
    kaifeii   62 天前 via iPhone
    从右向左的模拟不能应对从左到右流式输入,用位运算模拟方式可以
    @zqqian
        9
    kaifeii   62 天前 via iPhone
    当然我只是举例两个字符串同时确定位数从左向右一起输入的特殊情况,有点钻牛角尖了
        10
    zqqian   62 天前 via Android
    @kaifeii 可以先存到数组里面然后离线计算
        11
    ebony0319   62 天前 via Android
    楼上很多都没有考虑字符串是可以无限长,但是 int 是有范围的。
        12
    zqqian   62 天前 via Android
    @ebony0319 所以要用数组。。。
        13
    newtype0092   62 天前
    @ebony0319 大数计算一般是按小学学的竖式的方法计算的吧,开两个数组,从低到高位依次计算,能算多大看内存。
        14
    tommyZZM   62 天前
    加减法感觉还好。

    请大佬指教一下乘除法怎么弄?
        15
    yzyun08   62 天前
    @tommyZZM 乘除法也暴力一位一位算就好了当然 也可以几位压到一个数组下标
        16
    luoluoluo   62 天前
    要是真模拟,先 reverse a b ;再相加;结果 reverse
        17
    xrlin   61 天前
    按位计算就行了,只要记录下前一位的进位。
        18
    siyemiaokube   61 天前 via iPhone
        19
    siyemiaokube   61 天前 via iPhone
    @tommyZZM 百度:高精度

    课后练习:高精度模除、高精度进制转换、高精度位运算
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2853 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 25ms · UTC 05:45 · PVG 13:45 · LAX 22:45 · JFK 01:45
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1