算法硬币
发布时间: 2024-08-12 09:25:08
❶ 99个硬币凑成38块钱怎么算法
99个硬币凑成38块钱可以这样算:硬币只有1元、0.5元x+y=99x+0.5y=380.5y=99-380.5y=61y=122个x+y=99x=99-122x=-23个。
❷ 用1分,2分和5分硬币凑成一元钱的方法有多少种
不知道有没有限制一定要有这3种硬币呢?如果这三种硬币必须至少用一枚的话,算法如下:
设x个1分,y个2分,z个5分,且xyz都是正自然数
x+2y+5z=100
19>=z>=1
z=1时 x+2y=95 x>=1,且x是奇数;2y<=94,且y是整数,所以有47种
z=2时 x+2y=90 1<=y<=44 同理,有44种
z=3时 x+2y=85 1<=y<=42 同理,有42种
z=4时 x+2y=80 1<=y<=39 同理,有39种
z=5时 x+2y=75 1<=y<=37 同理,有37种
……
这个方法好笨,要算19次……不过我暂时想不出更好的方法
但有个规律就是个数依次-3,-2,-3,-2,-3……
❸ 算法 最少硬币问题
设 dp[k] 表示找钱数 k 需要的最少硬币数。对每一个dp[i]需要存储这个状态下需要的各硬币数量。
对T[1..n]中的每一个T[i],如果 dp[k-T[i]] 中需要硬币 T[i] 的数量小于Coins[i]-1,则把 dp[k-T[i]]+1 加入待比较的数组中。
dp[k]= min{ dp[k-T[i]]+1 },同时要更新 dp[k] 需要的各硬币的数量。
热点内容