牛客题霸 NC10 大数乘法

Posted Starzkg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客题霸 NC10 大数乘法相关的知识,希望对你有一定的参考价值。

https://www.nowcoder.com/practice/c4c488d4d40d4c4e9824c3650f7d5571

解决方案

JAVA

    public String solve (String s, String t) {
        // write code here
        BigInteger bi1 = new BigInteger(s) ;	// 声明BigInteger对象
		BigInteger bi2 = new BigInteger(t) ;	// 声明BigInteger对象
        BigInteger bi3 = bi1.add(bi2);
        return bi3.toString();
    }

Go

func solve(s string, t string) string {
	// write code here
	ns := make([]int, len(s))
	nt := make([]int, len(t))
	for i := 0; i < len(s); i++ {
		ns[i] = int(s[i] - '0')
	}
	for i := 0; i < len(t); i++ {
		nt[i] = int(t[i] - '0')
	}
	raws := make([]int, len(s)+len(t))
	for i := len(s) - 1; i >= 0; i-- {
		for j := len(t) - 1; j >= 0; j-- {
			raws[i+j+1] += ns[i] * nt[j]
		}
	}
	carry := 0
	rret := make([]rune, len(raws))
	for i := len(raws) - 1; i >= 0; i-- {
		v := (raws[i] + carry) % 10
		carry = (raws[i] + carry) / 10
		rret[i] = rune(v + '0')
	}
	if rret[0] == '0' {
		return string(rret[1:])
	}
	return string(rret)
}

参考文章

以上是关于牛客题霸 NC10 大数乘法的主要内容,如果未能解决你的问题,请参考以下文章

牛客题霸 NC26 括号生成

牛客题霸 NC18 顺时针旋转矩阵

牛客题霸 NC23 划分链表

牛客题霸 NC17 最长回文子串

牛客题霸 NC12 重建二叉树

牛客题霸 NC2 重排链表