91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

硬幣組合

發布時間:2020-05-25 08:17:22 來源:網絡 閱讀:693 作者:stlf2004 欄目:編程語言

當下,坐公交或者地鐵時大部分人都是刷卡的。不過,時至今日還在用現金支付的人還是比想象的多。本題我們以安置在公交上的零錢兌換機為背景。
這個機器可以用紙幣兌換到 10 日元、50 日元、100 日元和 500 日元硬幣的組合,且每種硬幣的數量都足夠多(因為公交接受的最小額度為 10 日元,所以不提供 1 日元和 5 日元的硬幣)。
兌換時,允許機器兌換出本次支付時用不到的硬幣。此外,因為在乘坐公交時,如果兌換出了大量的零錢會比較不便,所以只允許機器最多兌換出 15 枚硬幣。譬如用 1000 日元紙幣兌換時,就不能兌換出“100 枚 10 日元硬幣”的組合( 圖5 )。
硬幣組合
問題
求兌換 1000 日元紙幣時會出現多少種組合?注意,不計硬幣兌出的先后順序。


package main

import "fmt"

const (
    coin10 = 10
    coin50 = 50
    coin100 = 100
    coin500 = 500
)

func mostCount(money, coinDeno int)int{
    mostC := money / coinDeno
    if mostC > 15{
        return 15
    }else{
        return mostC
    }
}

func main(){
    money := 1000
    coin10MostCount := mostCount(money, coin10)
    coin50MostCount := mostCount(money, coin50)
    coin100MostCount := mostCount(money, coin100)
    coin500MostCount := mostCount(money, coin500)

    n := 0
    for a:=0;a<=coin500MostCount;a++ {
        for b:=0;b<=coin100MostCount;b++{
            for c:=0;c<=coin50MostCount;c++{
                for d:=0;d<=coin10MostCount;d++{
                    if 500*a + 100*b + 50*c + 10*d == money && a + b + c + d <= 15{
                        fmt.Printf("%d = 500*%2d + 100*%2d + 50*%2d + 10*%2d\n", money, a, b, c, d)
                        n++
                    }
                }
            }
        }
    }
    fmt.Println("共", n, "種組合")
}

結果:

1000 = 500* 0 + 100* 5 + 50*10 + 10* 0
1000 = 500* 0 + 100* 6 + 50* 8 + 10* 0
1000 = 500* 0 + 100* 7 + 50* 6 + 10* 0
1000 = 500* 0 + 100* 8 + 50* 4 + 10* 0
1000 = 500* 0 + 100* 9 + 50* 1 + 10* 5
1000 = 500* 0 + 100* 9 + 50* 2 + 10* 0
1000 = 500* 0 + 100*10 + 50* 0 + 10* 0
1000 = 500* 1 + 100* 0 + 50* 9 + 10* 5
1000 = 500* 1 + 100* 0 + 50*10 + 10* 0
1000 = 500* 1 + 100* 1 + 50* 7 + 10* 5
1000 = 500* 1 + 100* 1 + 50* 8 + 10* 0
1000 = 500* 1 + 100* 2 + 50* 5 + 10* 5
1000 = 500* 1 + 100* 2 + 50* 6 + 10* 0
1000 = 500* 1 + 100* 3 + 50* 3 + 10* 5
1000 = 500* 1 + 100* 3 + 50* 4 + 10* 0
1000 = 500* 1 + 100* 4 + 50* 0 + 10*10
1000 = 500* 1 + 100* 4 + 50* 1 + 10* 5
1000 = 500* 1 + 100* 4 + 50* 2 + 10* 0
1000 = 500* 1 + 100* 5 + 50* 0 + 10* 0
1000 = 500* 2 + 100* 0 + 50* 0 + 10* 0
共 20 種組合

貌似復雜,做起來其實不難,把各種情況都讓計算機試一遍就好了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安龙县| 綦江县| 广东省| 铁岭县| 黄浦区| 平南县| 湟中县| 南开区| 壶关县| 肃南| 广饶县| 枣庄市| 乐清市| 密山市| 北京市| 南乐县| 合水县| 阜阳市| 麟游县| 老河口市| 达拉特旗| 炎陵县| 博罗县| 陈巴尔虎旗| 大荔县| 房山区| 新绛县| 凉山| 中阳县| 新巴尔虎右旗| 保靖县| 亚东县| 西充县| 那坡县| 方正县| 常山县| 梅河口市| 涡阳县| 光泽县| 丰台区| 安仁县|