代码拉取完成,页面将自动刷新
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"))
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。