Java 如何优化存钱罐中的硬币数量?
因此,在小猪存钱罐的类别中,我有四个变量:Java 如何优化存钱罐中的硬币数量?,java,math,Java,Math,因此,在小猪存钱罐的类别中,我有四个变量:便士,镍币,一角硬币,和四分之一硬币。如果我的用户输入三个镍币,我想将其转换为1一角和1镍币。我知道这是一个很容易的问题,但我现在很笨。以下是我现有的: public void optimize() { //This whole method is 100% terrible. nickels = nickels + pennies/5; pennies -= (nickels*5); quarters = quarters +
便士
,镍币
,一角硬币
,和四分之一硬币
。如果我的用户输入三个镍币
,我想将其转换为1一角
和1镍币
。我知道这是一个很容易的问题,但我现在很笨。以下是我现有的:
public void optimize() { //This whole method is 100% terrible.
nickels = nickels + pennies/5;
pennies -= (nickels*5);
quarters = quarters + nickels/5;
nickels -= (quarters*5);
dimes = dimes + nickels/2;
nickels -= (dimes*2);
}
似乎这方面的东西应该行得通。我“认为”你可以使用一些模块化的数学来做这件事……所以现在可以用了,但这里有一些东西:System.out.println((便士+(镍币*5)+(十美分*10)+(四分之一*25));打印出0。发生什么事了?您正试图打印
int
。这应该是可行的:System.out.println(Integer.toString(pennies+(nickels*5)+(dimes*10)+(quarters*25))代码>如果所有变量都是int
s。
public void optimize() {
int total = (25 * quarters) + (10 * dimes) + (5 * nickels) + pennies
quarters = (total/25); //note the integer division
total = total % 25; //no more quarters, cut off 25 until we're less than 25
dimes = (total/10);
total = total % 10;
nickels = (total/5);
total = total % 5;
pennies = total;
}