1 Star 0 Fork 0

catyMap/AlgorithmNote

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
multiply.go 882 Bytes
一键复制 编辑 原始数据 按行查看 历史
dogemap 提交于 2021-09-05 11:30 . 更新题库
package main
import "fmt"
func multiply(num1 string, num2 string) string {
// 1.int数组模拟存储
len1, len2 := len(num1), len(num2)
nums := make([]int, len1+len2, len1+len2)
// 2.逆序移动指针,填充nus数组
for i := len1 - 1; i >= 0; i-- {
for j := len2 - 1; j >= 0; j-- {
mul := int(num1[i]-'0') * int(num2[j]-'0')
p10, p1 := mul/10, mul%10
nums[i+j] += p10
nums[i+j+1] += p1
nums[i+j] += nums[i+j+1] / 10
nums[i+j+1] %= 10
}
}
// 3.过滤前导0
idx := 0
for idx < len(nums) && nums[idx] == 0 {
idx++
}
nums = nums[idx:]
// 3.int数组转字符串
if len(nums) == 0 {
return "0"
}
bytes := make([]byte, 0, 0)
for _, v := range nums {
bytes = append(bytes, byte(v+'0'))
}
return string(bytes)
}
func main() {
//fmt.Println(multiply("2", "3"))
//fmt.Println(multiply("123", "456"))
fmt.Println(multiply("0", "0"))
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dogemap/algorithm-note.git
git@gitee.com:dogemap/algorithm-note.git
dogemap
algorithm-note
AlgorithmNote
dc486f96f6c1

搜索帮助