📜  function change(cash) { 你的代码在这里 return { 二:0,五:0,十:0 }; } - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:15:12.498000             🧑  作者: Mango

在 Go 编程语言中实现找零

当我们去购物时,经常需要找零。所以我们需要一个程序来自动帮我们找零。在这个示例中,我们使用 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]