遞迴 005 找錢問題

2021-09-29 16:19:06 字數 1112 閱讀 2195

hoji的個人技術部落格(分享乾貨的地方,歡迎來訪,部落格秉持訪客體驗感優先的原則,希望每一位到訪者都心情愉悅、收穫滿滿)

公園票價為5角。假設每位遊客只持有兩種幣值的貨幣:5角、1元。

再假設持有5角的有m人持有1元的有n人

由於特殊情況,開始的時候,售票員沒有零錢可找。

我們想知道這m+n名遊客以什麼樣的順序購票則可以順利完成購票過程。

顯然,m < n的時候,無論如何都不能完成;

m>=n的時候,有些情況也不行。比如,第乙個購票的乘客就持有1元。

請計算出這m+n名遊客所有可能順利完成購票的不同情況的組合數目。

注意:只關心5角和1元交替出現的次序的不同排列,持有同樣幣值的兩名遊客交換位置並不算做一種新的情況來計數。

從最後乙個人購票開始考慮,假設m+n-1個人已經買好票了,對於第m+n個人他有兩種買票情況:

而對於第m+n-1個人,因為已經假設已有m+n-2個人買好票,則其買票情況也有兩種,持5角買票,或持1元買票,… ,最後當第二個人買票時,他有兩種買票情況,持5角買票,或持1元買票,最後直到第乙個人,也同上述所述。

/**

* @author: hoji

* @description:

* @date: 11/15/2019 7:24 pm

*/public

class 找錢問題

if(n ==0)

changemoney

(m-1

, n)

;changemoney

(m, n-1)

;}public

static

void

main

(string[

] args)

}

這裡說明一下:為什麼m==1是倒數第二個人,因為當if(m==1)成立之前要滿足m>n,故m==1時,n==0

硬幣找錢問題

設有6種不同面值的硬幣,各硬幣的面值分別為5分 1角 2角 5角 1元和2元。現在要用這些面值的硬幣來購物和找錢。購物時可以使用的各種面值的硬幣個數存於陣列coins 1 6 中,假設商店裡各面值的硬幣有足夠多。對於給定的付款金額,計算使用硬幣個數最少的交易方案。輸入資料的每一行有6個整數和乙個有2...

Problem 找錢問題

time limit 1 sec memory limit 64 mb submit 12397 solved 3423 買火車票時經常會碰到找錢問題。售票員手中有50 20 10 5 1元的錢幣,你知道怎麼找錢才能使找回的零錢張數最少嗎?多組測試資料,輸入需要找錢的錢數 輸出按下面格式 第一行輸出...

硬幣找錢問題

硬幣找錢問題 time limit 1000ms memory limit 65536k total submit 3 accepted 1 description 設有6 種不同面值的硬幣,各硬幣的面值分別為5 分,1 角,2 角,5 角,1 元,2元。現要用這些面值的硬幣來購物和找錢。購物時可以...