美文网首页
[算法] 大数相加

[算法] 大数相加

作者: 七月份的Leo | 来源:发表于2020-06-14 15:41 被阅读0次

看到个有意思的问题 “给定2个整数,这两个数大的连long类型都装不下,如何计算两数和”

实践了一下,可以用数组存放,数组的每个元素对应大整数的每一个数位

fun bigNumberSum(bigNumA:String, bigNumB:String){

val maxArrayLength =if (bigNumA.length > bigNumB.length) bigNumA.length +1  else bigNumB.length +1

    val a = IntArray(maxArrayLength)

//倒序放入数组

    for (iin 0 until bigNumA.length )

{

a[i] = bigNumA[bigNumA.length -1 - i] -'0'

    }

val b = IntArray(maxArrayLength)

for (iin 0 until bigNumB.length)

{

b[i] = bigNumB[bigNumB.length -1 - i] -'0'

    }

var result = IntArray(maxArrayLength)

for (iin 0 until maxArrayLength){

var tem = result[i]

tem += a[i]

tem += b[i]

if (tem >=10)

{

tem -=10

            result[i+1] =1

        }

result[i] = tem

}

var sb = StringBuilder()

var findFirst =false

    //再次逆序取出

    for ( iin result.size -1 downTo 0)

{

if (!findFirst){

if (result[i] ==0){

continue

            }

findFirst =true

        }

sb.append(result[i])

}

println(sb.toString())

}

相关文章

  • [算法] 大数相加

    看到个有意思的问题 “给定2个整数,这两个数大的连long类型都装不下,如何计算两数和” 实践了一下,可以用数组存...

  • 算法——大数相加

    浏览器可以计算15位数字的加减,对于16位的数字它就搞不定了,但是,最近出了bigint数据类型,可以在16位及以...

  • 大数相加算法

    1、题目:实现两个大数相加。2、算法流程:(1)大数可能超出任何一种整数类型,会引发溢出问题,所以用字符串的格式存...

  • OC大数相加相乘算法

    前些天做了份笔试题,最后一道题是写一个大数相乘的算法,太久没做题了,也没有草稿纸,脑子没动起来,笔就开始天马行空了...

  • 前端-大数相加

    大数相加

  • 大数相加

    大数相加类

  • JSCoding

    大数相加 深拷贝

  • 大数相加

    大数相加(java) 一、BigDecimal工具类 二、转换为字符串解法

  • 20181125_ARTS_W8

    Algorithm(至少一个算法题) 415. Add Strings题目描述:两个用字符串表示的大数相加解题思路...

  • JS大数字相加

    问:如何计算大数字的相加?大到可以溢出的那种。 大数字相加,避免使用传统的相加(可能会溢出),所以使用数学题的思路...

网友评论

      本文标题:[算法] 大数相加

      本文链接:https://www.haomeiwen.com/subject/sdgxxktx.html