美文网首页
Go语言基础练习二

Go语言基础练习二

作者: 羋学僧 | 来源:发表于2021-12-10 11:08 被阅读0次

    一、分金币

    /*
    你有50枚金币,需要分配给以下几个人:Matthew,Sarah,Augustus,Heidi,Emilie,Peter,Giana,Adriano,Aaron,Elizabeth。
    分配规则如下:
    a. 名字中每包含1个'e'或'E'分1枚金币
    b. 名字中每包含1个'i'或'I'分2枚金币
    c. 名字中每包含1个'o'或'O'分3枚金币
    d: 名字中每包含1个'u'或'U'分4枚金币
    写一个程序,计算每个用户分到多少金币,以及最后剩余多少金币?
    程序结构如下,请实现 ‘dispatchCoin’ 函数
    */
    var (
        coins = 50
        users = []string{
            "Matthew", "Sarah", "Augustus", "Heidi", "Emilie", "Peter", "Giana", "Adriano", "Aaron", "Elizabeth",
        }
        distribution = make(map[string]int, len(users))
    )
    
    func main() {
        left := dispatchCoin()
        fmt.Println("剩下:", left)
    }
    
    package main
    
    import (
        "fmt"
    )
    
    var (
        coins = 50
        users = []string{
            "Matthew", "Sarah", "Augustus", "Heidi", "Emilie", "Peter", "Giana", "Adriano", "Aaron", "Elizabeth",
        }
        distribution = make(map[string]int, len(users))
    )
    
    func dispatchCoin() (left int){
        // 1. 依次拿到每个人的名字
        for _ , name := range users {
            // 2. 拿到一个人的名字,根据分金币的规则去分金币
            for _ ,c := range name {
                // 2.1 每个人分的金币数应保存到 distribution 中
                // 2.2 还要记录下剩余的金币数
                switch c {
                case 'e','E' :
                    distribution[name]++
                    coins--
                case 'i','I' :
                    distribution[name] += 2
                    coins -= 2
                case 'o','O' :
                    distribution[name] += 3
                    coins -= 3
                case 'u','U' :
                    distribution[name] += 4
                    coins -= 4
                }
            }
        }
        left = coins
     // 3. 整个第2步执行完,就能得到最终每个人分的金币数和剩余金币数
     return
    
    }
    
    
    func main() {
        left := dispatchCoin()
        fmt.Println("剩下:", left)
        for k,v := range distribution {
            fmt.Printf("%s:%d\n",k,v)
        }
    }
    

    相关文章

      网友评论

          本文标题:Go语言基础练习二

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