4-11 硬币找钱问题
问题描述
设有 6 种不同面值的硬币,各硬币的面值分别为 5 分,1 角,2 角,5 角,1 元,2 元。 现要用这些面值的硬币来购物和找钱。购物时可以使用的各种面值的硬币个数存于数组 Coins[1:6]中,商店里各面值的硬币有足够多。在 1 次购物中希望使用最少硬币个数。
例如,1 次购物需要付款 0.55 元,没有 5 角的硬币,只好用 2*20+10+5 共 4 枚硬币来 付款。如果付出 1 元,找回 4 角 5 分,同样需要 4 枚硬币。但是如果付出 1.05 元(1 枚 1 元和 1 枚 5 分),找回 5 角,只需要 3 枚硬币。这个方案用的硬币个数最少。
对于给定的各种面值的硬币个数和付款金额,编程计算使用硬币个数最少的交易方案。
数据输入:
每一行有 6 个整数和 1 个有 2 位小数的实数。分别表示可以使用的各种面值的硬币个数和付款金额。
Java
import java.util.Scanner;
public class YingBiZhaoQian {
private static int[] coins = new int[6];
private static int[] c = {
5, 10, 20, 50, 100, 200};
private static int count = 0;
private static int cost;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (