📅  最后修改于: 2023-12-03 15:15:12.498000             🧑  作者: Mango
当我们去购物时,经常需要找零。所以我们需要一个程序来自动帮我们找零。在这个示例中,我们使用 Go 编程语言来实现找零的功能。
func change(cash int) map[string]int {
result := make(map[string]int)
result["二"] = 0
result["五"] = 0
result["十"] = 0
for cash >= 10 {
result["十"]++
cash -= 10
}
for cash >= 5 {
result["五"]++
cash -= 5
}
for cash >= 2 {
result["二"]++
cash -= 2
}
return result
}
这个函数接收一个整数类型的参数 cash
,代表需要找零的金额。为了将找零结果以易于显示的格式返回,我们使用一个 map
类型的变量 result
来保存结果。map
类型的变量可以用来存储和查找键和与之对应的值,我们将键设置为硬币的面额,值设置为数量。在代码的开头,我们使用 make
函数初始化了 result
变量,并且给每个硬币的面额设置了初始值 0。
在接下来的三个循环中,我们使用类似于贪心算法的思路,从大的面额开始找零,直到找完所有的硬币或者零钱不足为止。在每一次循环中,我们先检查是否还有足够的钱来找零,如果有,就将对应的硬币数量加 1,然后减去对应的面额。最后,我们将 result
变量返回即可。
下面是一个使用示例:
fmt.Println(change(27)) // map[二:1 十:2 五:1]
这个函数会将 27 元找零为两个十元、一个五元和一个二元的硬币。输出的结果如下:
map[二:1 十:2 五:1]