美文网首页
2的10000次方实现逻辑

2的10000次方实现逻辑

作者: MrBryan | 来源:发表于2021-06-17 17:44 被阅读0次
    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
        var input string
        for {
            fmt.Println("")
            fmt.Println("请输入2的几次幂:")
            if _, err := fmt.Scanf("%s", &input); err != nil {
                fmt.Printf("%s\n", err)
                return
            }
            if input == "exit" {
                fmt.Println("退出成功~")
                return
            } else {
                ret := calculate( input )
                fmt.Println("结果为:")
                for i := len(ret)-1;i>=0 ;i--  {
                    fmt.Print(ret[i])
                }
                fmt.Println()
    
            }
            fmt.Println("输入【exit】程序退出~")
        }
    }
    
    func calculate(input string) []int {
        ret :=[]int{1}
        power,_ := strconv.Atoi(input)
        if power<=0{
            return ret
        }
        carry :=0
        for i:=0;i< power ;i++  {
            for j:=0;j<len(ret);j++  {
                tmp := (2 * ret[j]) + carry
                if tmp>=10 {
                    ret[j] = tmp%10
                    carry = 1
                }else{
                    ret[j] = tmp
                    carry = 0
                }
            }
            if carry>0 {
                ret = append(ret,carry)
                carry=0
            }
        }
    
        return ret
    }
    
    

    相关文章

      网友评论

          本文标题:2的10000次方实现逻辑

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