Ocena użytkownikóww: ***** / 3
Nadesłany przez Dominik Goździuk, 20 lutego 2012 23:24
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
WydawanieReszty.java:
// Problem wydawania reszty
//(c) Dominik Goździuk
// www.algorytm.org
import java.util.Scanner;
import java.util.InputMismatchException;
public class WydawanieReszty {
public static void main(String[] args) {
final double[] NOMINALY = {200.0,100.0,50.0,20.0,10.0,5.0,2.0,1.0,0.5,0.2,0.1,0.05,0.02,0.01};
double reszta = 0;
Scanner sc = new Scanner(System.in);
System.out.print("Podaj reszte: ");
try {
reszta = sc.nextDouble();
}
catch (InputMismatchException ex) {
System.out.println("Nieprawidlowa wartosc");
return;
}
String wynik = "Reszta:\n";
for (int i = 0; ((i < NOMINALY.length) && (reszta > 0.00)); i++) {
if (reszta >= NOMINALY[i]) {
int temp = (int)Math.floor(reszta/NOMINALY[i]);
wynik += NOMINALY[i] + " PLN x " + temp + "\n";
reszta = (double) Math.round(100*(reszta-(temp*NOMINALY[i])))/100;
}
}
System.out.println(wynik);
}
}