编程练习-找零钱

编程练习-找零钱

老村长在村口支了一个西瓜摊卖西瓜,规定每人只能买一个瓜,一个瓜5元。

村民们手里有5元,10元,20元币值的钱。

拿5元买瓜,不用找零。

拿10元买瓜,需要找零5元。

拿20元买瓜,需要找零15元。

请写出一个函数,检查老村长能否对排队买瓜的所有人找零钱,如果能,返回true,否则,返回false。

结题思路:

收到5元,不用找零。

收到10元,就要看有没有5元找零。

收到20元,找零15元。就要看有没有一张10元,一张5元或三张5元。

所以需要知道每次找零时5元和10元的剩余数量。

 

go实现:

package main

import "fmt" func coinChange(coin_list []int) bool { var five, ten = 0, 0 fmt.Println(coin_list) for _, v := range coin_list { if v == 5 { five++ } if v == 10 { if five > 0 { five-- ten++ } else { return false } } if v == 20 { if five > 0 && ten > 0 { five-- ten-- } else if five >= 3 {
          five = five - 3
       } else { return false } } } return true } func main() { var coin_list = []int{5, 10, 5, 20} fmt.Println(coinChange(coin_list)) }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 编程练习-找零钱