自学Java时,我遇到了一个示例问题,该问题要求我创建一个收银机程序,该程序将计算返回给客户的美元、镍币、25美分、迪姆和便士的总零钱。
我计算出了用户输入,但获得正确的子单元是棘手的一部分。例如:如果成本是4美元,投标金额是5美元,那么很容易编写返回1美元的代码行,但我遇到的问题是将所需的硬币和便士放在正确的字段中。ex2:总成本$4.62,投标:$5,变化:$0.38
System.out.print("Enter the sale amount: $ ");
double sale = user.nextDouble();
System.out.print("Enter the amount tendered by customer: $ ");
double tendered = user.nextDouble();
double totalChange = (tendered - sale);
System.out.printf("TOTAL CHANGE: $ %.2f\n", totalChange);
dollars = totalChange/1;
quarters = totalChange/25;
dimes = totalChange/10;
nickels = totalChange/5;
pennies = totalChange/1;
System.out.printf("DOLLARS: %.2f\n", dollars);
System.out.printf("QUARTERS: %.2f\n", quarters);
System.out.printf("DIMES: %.2f\n", dimes);
System.out.printf("NICKELS: %.2f\n", nickels);
System.out.printf("PENNIES: %.2f\n", pennies);我不需要答案(因为我想自学自学),只需要一些关于如何做到这一点的建议。
编辑:这个算法我做错了什么:
dollars = totalChange/1;
dollars = (int)dollars;
dl = totalChange % 1;
quarters = dl/0.25;
q = quarters % 0.25;
quarters = (int)quarters;
dimes = q / .10;
d = dimes % .10;
nickels = d / .5;
n = nickels % .5;
pennies = n / .1;
n = pennies/ .1;发布于 2014-01-29 07:33:46
你在正确的轨道上。在确定变化中的最大整数美元数后,减去它。然后从剩下的硬币中确定你能得到的最大硬币数。对每一个重复上述步骤。这和你作为人类自己做的是一样的。
https://stackoverflow.com/questions/21419150
复制相似问题