美文网首页
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语言基础练习二

    一、分金币

  • Go语言入坑

    GO语言基础 认识并安装GO语言开发环境 Go语言简介 Go语言是谷歌2009年发布的第二款开源编程语言 go语言...

  • go语言基础

    go语言基础 go 语言接口

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • Go语言基础练习一

    一、字符统计 1、判读字符串汉字的数量 2、how do you do 单词出现的次数 二、回文判断 字符串从左往...

  • Go语言基础练习六

    ini配置文件解析 conf.ini main.go

  • Go语言基础练习五

    自定义日志库实现 需求分析 1.支持往不同的地方输出日志 2.日志分级别 (1) Debug (2) Trace ...

  • Go语言基础练习四

    结构体版学生管理系统 student_magr.go main.go

  • Go语言基础练习三

    函数版学生管理系统 写一个系统能够查看、新增、删除学生

  • go语言基础(二)

    一、数组数组的基础使用如下(tips:fmt的print输出可直接输出数组,不需要遍历),er: 如果想要遍历数组...

网友评论

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

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