package main
import"fmt"/*
你有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))//make初始化了一个变量 key是string 值是int 切记一定要初始化)funcdispatchCoin()(left int){//功能实现//1.依次遍历拿到每个人的名字for_, name :=range users {//2.拿到一个人名字开始按照规则分金币for_, v :=range name {switch v {case'e','E':
distribution[name]++
coins--case'i','I':
distribution[name]+=2
coins -=2case'o','O':
distribution[name]+=3
coins -=3case'u','U':
distribution[name]+=4
coins -=4}}}
left = coins
return//3.每个人分的金币数应该保存到map中,同时要计算还剩余多少//4.整个执行结束后得到每个人分得的金币数和剩下的金币数}funcmain(){
left :=dispatchCoin()
fmt.Println("剩下:", left)for k, v :=range distribution {
fmt.Printf("%s:%d\n", k, v)}}