這是一道比較有意思的題,在牛客網網直通bat演算法的題中看到。
這裡坐下記錄:
題:我們知道人民幣有1、2、5、10、20、50、100這幾種面值。現在給你n元,讓你計算換成用上面這些面額表示且總數不超過100張,共有幾種。比如4元,能用4張1元、2張1元和1張2元、2張2元,三種表示方法。
這題是到動態規劃的問題。n
找錢的面值只有7種:1,2,5,10,20,50,100;當輸入乙個 n值介於某兩個面值之間時,如n=25,則介於20到50之間,那麼所有找錢的最大值是20;利用遞迴的思想,此時找錢的方法可分為兩類,一類包含20面值,另一類不包含20,利用加法原理,將兩類相加即可,而對於這兩類還可以繼續分,對於包含20的,那麼面值此時變成了n-20=5;對於不包含20的,則所找到的面值最大為10塊,這樣遞迴下去;
遞迴公式:changemoney(n,i)=changemoney(n-money[i], i) +changemoney(n, i-1);
#includeusing namespace std;
int money = ;
//n錢,money[index]<=n>n && n!=0)
}cout << changemoney(n, index) << endl;
} system("pause");
return 0;
}
找零錢問題
問題描述 我們知道人民幣有1 2 5 10 20 50 100這幾種面值。現在給你n 1 n 250 元,讓你計算換成用上面這些面額表示且總數不超過100張,共有幾種。比如4元,能用4張1元 2張1元和1張2元 2張2元,三種表示方法。輸入有多組,每組一行,為乙個整合n。輸入以0結束。輸出該面額有幾...
找零錢問題
人民幣有1 2 5 10 20 50 100這幾種面值。現在給你n 1 n 250 元,讓你計算換成用上面這些面額表示且總數不超過100張,共有幾種。比如4元,能用4張1元 2張1元和1張2元 2張2元,三種表示方法。輸入有多組,每組一行,為乙個整合n。輸入以0結束。輸出該面額有幾種表示方法。使用動...
找零錢問題
假定有一元 五元 十元 二十元和五十元的紙幣,在給顧客找錢時,一般都會盡可能的選用紙幣張數最少的方法。例如,當要給某顧客找75元時,會給他1張五十的,1張二十的和1張五元的紙幣。請編寫乙個程式,輸入的是要找給顧客的零錢 以元為單位 輸出的是應該找回的各種紙幣的數量,並保證找回的紙幣數最少。程式執行結...