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;  
}