錢幣編程
❶ 最少需要多少張紙幣python
導讀:今天首席CTO筆記來給各位分享關於最少需要多少張紙幣Python的相關內容,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!
這個程序主要是要用到計算機語言來編寫,你這個主要是有三種面的程序的行數要達到30行。
PYTHON問題要用這些錢來支付K元,最少要用多少張紙幣?程序輸入K,輸出紙幣組合。packageTanXin;
/*錢幣找零問題*/
/*這個問題在我們的日常生活中就更加普遍了。假設1元、2元、5元、10元、20元、50元、100元的紙幣分別有c0,c1,c2,c3,c4,c5,c6張。現在要用這些錢來支付K元,至少要用多少張紙幣?用貪心演算法的思想,很顯然,每一步盡可能用面值大的紙幣即可。在日常生活中我們自然而然也是這么做的。在程序中已經事先將Value按照從小到大的順序排好。*/
publicclassQianBiZhaoLing{
publicstaticvoidmain(String[]args){
//人民幣面值集合
int[]values={1,2,5,10,20,50,100};
//各種面值對應數量集合
int[]counts={3,1,2,1,1,3,5};
//求442元人民幣需各種面值多少張
int[]num=change(442,values,counts);
print(num,values);
}
publicstaticint[]change(intmoney,int[]values,int[]counts){
//用來記錄需要的各種面值張數
int[]result=newint[values.length];
for(inti=values.length-1;i=0;i--){
intnum=0;
//需要最大面值人民幣張數
intc=min(money/values[i],counts[i]);
//剩下錢數
money=money-c*values[i];
//將需要最大面值人民幣張數存入數組
num+=c;
result[i]=num;
}
returnresult;
}
/**
*返回最小值
*/
privatestaticintmin(inti,intj){
returnij?j:i;
}
privatestaticvoidprint(int[]num,int[]values){
for(inti=0;ivalues.length;i++){
if(num[i]!=0){
System.out.println("需要面額為"+values[i]+"的人民幣"+num[i]+"張");
}
}
}
}
python程序設計每種金額最少需要幾張紙幣問題如果LZ知道任慶生老師是誰的話,那麼學弟您好,如果不知道就忽略這句話啦~
這是一個動態規劃題,相信LZ已經知道貪心是不行的對吧?
主要思想就是,假如我要找37元的話,那麼我可以去看37-1,37-5,37-16,37-23,37-33元分別最少需要多少張紙幣,取其中的最小值,然後+1,就是當前最佳的解了,這樣我們就成功地縮小了問題規模。如此的話,從1元開始建表,表中每個下標對應的值是當前下標金額需要的最少紙幣數,只要把表建到目標金額就行啦~
具體實現的話,初始化一個list,讓list[0]=0,然後從1到目標金額n循環,對每個金額i,掃描貨幣種類,假定當前貨幣金額是k,那麼,如果i-k=0,我們就去找list[i-k];在所有的list[i-k]中選一個最小的,把它+1,就是當前i的解了。
恩恩,如果不懂,請追問~
Python語言求解人民幣張數最少問題s=int(input())
l=[100,50,20,10,5,1]
d=[0,0,0,0,0,0]
outstr=''
foriinrange(0,6):
?d[i]=int(s/l[i])
?ifd[i]0:
???outstr+=str(l[i])+"元:"+str(d[i])+"張"
?s-=d[i]*l[i]
print(outstr)
python菜鳥求助用代碼求出用1分錢,2分錢,5分錢湊夠2元2毛5分有多少種可能如果不一定包含3種面值,就是上面的網友提供的答案,當然一定好包含,range就要改一下。
比如,range(1,218,1)也就是1分的最少1張,1分218張,2分1張,5分1張。
a=input("請輸入一個數字:")
b=input("請輸入一個數字:")
ifa=b:
print(a,b)
else:
print(b,a)
(1)錢幣編程擴展閱讀:
python中文就是蟒蛇的意思。在計算機中,它是一種編程語言。Python(英語發音:/?pa?θ?n/),是一種面向對象、解釋型計算機程序設計語言,由GuidovanRossum於1989年底發明,第一個公開發行版發行於1991年。Python語法簡潔而清晰,具有豐富和強大的類庫。
它常被昵稱為膠水語言,它能夠把用其他語言製作的各種模塊(尤其是C/C++)很輕松地聯結在一起。常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然後對其中有特別要求的部分,用更合適的語言改寫。
python入門問題,關於貨幣面值最少的組合。不知道有沒有數學模型,總之計算機的優勢就是可以窮舉吧。
遞歸的列出所有的組合,然後看看誰最少。。。
可以優化一下,就是把前面計算的結果寫到一個數據字典裡面,然後直接提取出來。
...
foriinn:
printi,'--',getMin(i,"",cache)
--------------------
1--(1,',1')
2--(2,',1,1')
3--(3,',1,1,1')
4--(4,',1,1,1,1')
5--(1,',5')
6--(2,',5,1')
7--(3,',5,1,1')
8--(4,',5,1,1,1')
9--(5,',5,1,1,1,1')
10--(2,',5,5')
11--(3,',5,5,1')
12--(4,',5,5,1,1')
13--(5,',5,5,1,1,1')
14--(6,',5,5,1,1,1,1')
15--(3,',5,5,5')
16--(1,',16')
17--(2,',16,1')
18--(3,',16,1,1')
19--(4,',16,1,1,1')
20--(4,',5,5,5,5')
21--(2,',16,5')
22--(3,',16,5,1')
23--(1,',23')
24--(2,',23,1')
25--(3,',23,1,1')
26--(3,',16,5,5')
27--(4,',16,5,5,1')
28--(2,',23,5')
29--(3,',23,5,1')
30--(4,',23,5,1,1')
31--(4,',16,5,5,5')
32--(2,',16,16')
33--(1,',33')
34--(2,',33,1')
35--(3,',33,1,1')
36--(4,',33,1,1,1')
37--(3,',16,16,5')
38--(2,',33,5')
39--(2,',16,23')
40--(3,',16,23,1')
41--(4,',16,23,1,1')
42--(4,',16,16,5,5')
43--(3,',33,5,5')
44--(3,',16,23,5')
45--(4,',16,23,5,1')
46--(2,',23,23')
47--(3,',23,23,1')
48--(3,',16,16,16')
49--(2,',16,33')
50--(3,',16,33,1')
51--(3,',23,23,5')
52--(4,',23,23,5,1')
53--(4,',16,16,16,5')
54--(3,',16,33,5')
55--(3,',16,16,23')
56--(2,',23,33')
57--(3,',23,33,1')
58--(4,',23,33,1,1')
59--(4,',16,33,5,5')
60--(4,',16,16,23,5')
61--(3,',23,33,5')
62--(3,',16,23,23')
63--(4,',16,23,23,1')
64--(4,',16,16,16,16')
65--(3,',16,16,33')
66--(2,',33,33')
67--(3,',33,33,1')
68--(4,',33,33,1,1')
69--(3,',23,23,23')
70--(4,',16,16,33,5')
71--(3,',33,33,5')
72--(3,',16,23,33')
73--(4,',16,23,33,1')
74--(4,',23,23,23,5')
75--(5,',16,16,33,5,5')
76--(4,',33,33,5,5')
77--(4,',16,23,33,5')
78--(4,',16,16,23,23')
79--(3,',23,23,33')
80--(4,',23,23,33,1')
81--(4,',16,16,16,33')
82--(3,',16,33,33')
83--(4,',16,33,33,1')
84--(4,',23,23,33,5')
85--(4,',16,23,23,23')
86--(5,',16,16,16,33,5')
87--(4,',16,33,33,5')
88--(4,',16,16,23,33')
89--(3,',23,33,33')
90--(4,',23,33,33,1')
91--(5,',23,33,33,1,1')
92--(4,',23,23,23,23')
93--(5,',16,16,23,33,5')
94--(4,',23,33,33,5')
95--(4,',16,23,23,33')
96--(5,',16,23,23,33,1')
97--(5,',16,16,16,16,33')
98--(4,',16,16,33,33')
99--(3,',33,33,33')
結語:以上就是首席CTO筆記為大家整理的關於最少需要多少張紙幣Python的全部內容了,感謝您花時間閱讀本站內容,希望對您有所幫助,更多關於最少需要多少張紙幣Python的相關內容別忘了在本站進行查找喔。
❷ Java編程:最少錢幣數,這是一個古老而又經典的問題,用給定的幾種錢幣
/**
* 簡單用人民幣的常見數額做了初始化
*/
public class Test {
public static void main(String[] args){
int[] commonMoney = {100,50,20,10,5,1};
System.out.println(getLeastNum(108,commonMoney));
}
static String getLeastNum(int targetMoney,int[] commonMoney){
StringBuffer buffer = new StringBuffer();
int num = 0,total = 0;
String result = targetMoney + "$ 最少需要 ";
for(int money : commonMoney){
if(targetMoney >= money){
total += num = targetMoney/money;
targetMoney = targetMoney%money;
buffer.append("," + num + " 張 " + money + "$");
}
if(0 == targetMoney) break;
}
return result + total + " 張貨幣,分別是: " + buffer.substring(1);
}
}
輸出:
108$ 最少需要 5 張貨幣,分別是: 1 張 100$,1 張 5$,3 張 1$