Java 硬币计数器 Quarters/Dimes/Nickels/Pennies

Java Coin Counter Quarters/Dimes/Nickels/Pennies

我在尝试 运行.

这个程序时遇到了问题

本实验将研究此类机器背后的问题解决和编程。

您总是希望使用尽可能少的硬币。你应该用整数数学来解决这个问题。

通过构造函数提供美分数。写一个方法计算每种硬币的数量

tl;博士 我需要计算一定数量的硬币。

到目前为止,我有这个:

public class P4_Icel_Murad_Coins_java{
    private int c;
    public P4_Icel_Murad_Coins_java(int coins){
        c = 94;
        int Q_i, D_i, N_i, N_f;
    }

    public void counter(){
        int Q_i = (int)(c % 25);
        int Q_f = c - (Q_i * 25);
        int D_i = (int)(Q_f % 10);
        int D_f = c - (D_i * 10);
        int N_i = (int)(D_f % 5);
        int N_f = (int)(c - (N_i * 5));

        System.out.println("Quarter(s): " + Q_i );
        System.out.println("Dime(s): " + D_i);
        System.out.println("Nickel(s): " + N_i);
        System.out.println("Penny(ies): " + N_f);               

    }
}

而我的Driverclass是

public class Driver_class
{
    public static void main(String[] args) {
        P4_Icel_Murad_Coins_java start = new P4_Icel_Murad_Coins_java(94);
        start.counter();
    }
}

我得到的答案非常奇数,其中包括负数,而且出于某种原因还有很多便士。 任何帮助将不胜感激,并提前致谢。

您必须使用除法“/”而不是模“%”。例如

int Q_i = (int)(c / 25);

你应该更正你的构造函数,它没有使用来自调用者的硬币:

public P4_Icel_Murad_Coins_java(int cents){
    c = cents; // here use the caller cents
}