卖足球鞋的app:有5元、1元、0.5元的硬币若干,现要求用这些硬币组合成100元,每种硬币最少有一个,问有多少种组合方法?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/15 08:33:46
请大家帮忙解答。。。。并说下原理~~谢谢
用C语言编写~~~~谢谢大家了~~

这是一个3元一次方程 5*x+1*y+.5*z=100
如果用循环的方式实现很简单。下面给出VB的循环算法:
t=0
for x=1 to 19 '为什么是1到19呢 要保证至少每种硬币都有,以下同
for y=1 to 94 '(100-5-0.5)/1=94.5所有至多到94个
for z=2 to 188 step 2 '(100-5-1)/0.5=188 0.5元的硬币个数肯定是偶数。
if (x*5 + y*1 +z*0.5 =100) then t=t+1
next
next
next
msgbox t

t=931


1个5块时:余额95元,那么1元和0。5元的组合有94种可能
2个5块时:余额90元,那么1元和0。5远的组合有89种可能
依此类推:
3个5块时:84
4个5块时:79
。。。。
19个5块时:4
把总数全部加起94+89。。。。。+4=931种
可以利用高斯算法:“(94+4)*(19-1)/2 + (94+4)/2=931”

tx=""
for i=0 to 20 '5元的最多是20个
for j=0 to 100 ’1元的最多是100个
for k=0 to 200 ‘5角的最多是200个
if i*5+j*1+k*0.5=100 then '这种组合就是所求的

next
next
next

5*(1+2+3+``````+19)=950

自己想到几种就几种啊~
谁问你这个问题的????那个人没疯啊。。。。。

最少一个,怎么算你慢慢算