这道题根据我们日常生活中的习惯,我们很容易得出要想使花费的硬币最少,肯定是尽可能优先用大面额的硬币来支付。分别用两个数组存储硬币的金额和该硬币金额的个数,然后用一个循环来不断的使用硬币即可。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int[] a= {1,5,10,50,100,500};
int[] b=new int[6];
for(int i=0;i<6;i++) {
b[i]=sc.nextInt();
}
int sum=sc.nextInt(),ans=0;
for(int i=5;i>=0;i--) {
int t =Math.min(sum/a[i], b[i]);
ans+=t;
sum-=a[i]*t;
}
System.out.println(ans);
}
}