钱币编程
❶ 最少需要多少张纸币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$