Java Coin Counter Quarters / Dimes / Nickels / Pennies

时间:2015-08-30 04:52:40

标签: java class int driver system.out

我试图运行这个程序时遇到了麻烦。

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

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

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

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

    }
}

我的Driver类是

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

我得到了非常奇怪的数字,包括答案中的否定,以及由于某种原因的很多便士。 任何帮助将不胜感激,并提前感谢。

1 个答案:

答案 0 :(得分:1)

你必须使用除“/”而不是模“%”。 E.g。

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

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

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