题目:某单位用现金发放工资,编写程序计算各种面值的最佳张数,
- 以保证发给职工工资时不需找零。
- 职工工资与各种面值的张数均要求用数组描述。
需要的面值有1、5、10、20、50、100
这里没有明确的说明尽可能少的用钱的张数,所以面值为10的可以当20、50、100用,为了更能体现20、50、100面值的价值,以下中使用20、50、100面值。
public class Demo16 {
public static void main(String[] args) {
//定义职工工资的数组(假设给6个人发工资,工资数是3位数)
int [] salary = {543,760,857,329,674,875};
//定义和,记录每一个面值需要的总数
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
int sum4 = 0;
int sum5 = 0;
int sum6 = 0;
//定义面值的数组
int [] money1 = new int[20];
int [] money5 = new int[20];
int [] money10 = new int[20];
int [] money20 = new int[20];
int [] money50 = new int[20];
int [] money100 = new int[40];
//计算每个人工资的个位数,放入面值为1和5的数组中
for (int i = 0; i < salary.length; i++) {
int ge = salary[i]%10;
//System.out.println(ge);
if(ge==5