Счетчик монет Java четверти/даймы/пятаки/пенни

У меня возникли проблемы с этой программой, которую я пытаюсь запустить.

Эта лаборатория будет исследовать решение проблем и программирование таких механизмов.

Вы всегда хотите использовать как можно меньше монет. Вы должны использовать целочисленную математику, чтобы решить эту проблему.

Укажите количество центов через конструктор. Напишите метод, вычисляющий количество монет каждого типа.

tl;dr Мне нужно посчитать монеты в определенное количество центов.

пока у меня так:

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

Я получаю действительно нечетные числа, которые включают в себя отрицательные значения в ответе, и по какой-то причине много копеек. Любая помощь будет оценена, и спасибо заранее.


person Community    schedule 30.08.2015    source источник
comment
Строка int Q_i, D_i, N_i, N_f; бессмысленна, вам не нужны все приведения к int, и вы игнорируете параметр coins в конструкторе.   -  person Andreas    schedule 30.08.2015
comment
Параметр coins действительно должен называться cents, не так ли?   -  person Andreas    schedule 30.08.2015
comment
Да, Андреас прав. Задача говорит об этом: укажите количество центов через конструктор. И он говорит: «Вы должны использовать целочисленную математику, чтобы решить эту задачу». Как 94/25=260? или в следующий раз 94/25=179?   -  person dev.null    schedule 30.08.2015
comment
@dev.null для конечного продукта я получил 260, извините, я не уточнил   -  person    schedule 30.08.2015


Ответы (1)


Вы должны использовать деление «/» вместо деления по модулю «%». Например.

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

И вы должны исправить свой конструктор, который не использовал монеты от вызывающей стороны:

public P4_Icel_Murad_Coins_java(int cents){
    c = cents; // here use the caller cents
}
person dev.null    schedule 30.08.2015
comment
когда я заменяю % на /, я получаю 179 вместо 94, кстати, спасибо за ответ :) - person ; 30.08.2015
comment
Как получить 179, если разделить 94/25? - person dev.null; 30.08.2015
comment
Вы заменили все вхождения % на /? - person dev.null; 30.08.2015