zoukankan      html  css  js  c++  java
  • Go--实现两个大数相乘

    -----

    import (
        "bufio"
        "fmt"
        "os"
        "strings"
    )
    
    func multi(str1, str2 string) (result string) {
    
        if len(str1) == 0 && len(str2) == 0 {
            result = "0"
            return
        }
    
        var index1 = len(str1) - 1
        var index2 = len(str2) - 1
        var left int
    
        for index1 >= 0 && index2 >= 0 {
            c1 := str1[index1] - '0'
            c2 := str2[index2] - '0'
    
            sum := int(c1) + int(c2) + left
            if sum >= 10 {
                left = 1
            } else {
                left = 0
            }
            c3 := (sum % 10) + '0'
            result = fmt.Sprintf("%c%s", c3, result)
            index1--
            index2--
        }
    
        for index1 >= 0 {
            c1 := str1[index1] - '0'
            sum := int(c1) + left
            if sum >= 10 {
                left = 1
            } else {
                left = 0
            }
            c3 := (sum % 10) + '0'
    
            result = fmt.Sprintf("%c%s", c3, result)
            index1--
        }
    
        for index2 >= 0 {
            c1 := str2[index2] - '0'
            sum := int(c1) + left
            if sum >= 10 {
                left = 1
            } else {
                left = 0
            }
            c3 := (sum % 10) + '0'
            result = fmt.Sprintf("%c%s", c3, result)
            index2--
        }
    
        if left == 1 {
            result = fmt.Sprintf("1%s", result)
        }
        return
    }
    
    func main() {
        reader := bufio.NewReader(os.Stdin)
        result, _, err := reader.ReadLine()
        if err != nil {
            fmt.Println("read from console err:", err)
            return
        }
    
        strSlice := strings.Split(string(result), "+")
        if len(strSlice) != 2 {
            fmt.Println("please input a+b")
            return
        }
    
        strNumber1 := strings.TrimSpace(strSlice[0])
        strNumber2 := strings.TrimSpace(strSlice[1])
        fmt.Println(multi(strNumber1, strNumber2))
    }
  • 相关阅读:
    appium+python自动化:获取元素属性get_attribute
    Appium定位
    Appium 服务器初始化参数(Capability)
    你会阅读appium官网文档吗
    Appium 服务命令行参数
    推荐一个pycharm验证xpath表达式的插件XPathView +​ XSLT
    今日总结
    今日总结
    今日总结
    动手动脑 继承
  • 原文地址:https://www.cnblogs.com/PasserByOne/p/12019885.html
Copyright © 2011-2022 走看看