Programación Java para calcular pago y cambio
importar?java.io.IOException;
importar?java.io.InputStream;
importar?java.util.ArrayList;
importar?java.util.List;
¿clase pública?¿Cambiar?{
/**
?*?@param?args p>
?*/
public?static?void?main(String[]?args)?{
System.out.println("Ingrese el precio: " );
double?m?=?Double.parseDouble(getInputLine());
System.out.println("Pague el importe: ");
double?c?=?Double.parseDouble(getInputLine());
cambio(m,?c);
}
público ?static ?String?getInputLine()?{
InputStream?inputStream?=?System.in;
Listlt;Bytegt;?cmdBuffer?=?new?ArrayListlt;Bytegt;( );
int?t;
¿intentar?{
while?(verdadero)?{
t?=?inputStream. leer( );
si?(t?==?'\n')?{
byte[]?bs?=?new?byte[cmdBuffer.size() ];
para?(int?i?=?0;?i?lt;?cmdBuffer.size();?i )?{
bs[i]?= ?cmdBuffer .get(i);
}
return?new?String(bs).trim();
}?else?{ p>
cmdBuffer.add((byte)?t);
if?(cmdBuffer.size()?gt;?1024)?{
return?null;
p>}
}
}
}?catch?(IOException?e)?{
return?null ;
}
}
public?static?double[]?moneys?=?{?0.01,?0.02,?0.05, ?0,1,?0,2,?0,5,?1,?2,?5,?10,?20,?50,?100?};
/**
? *?@param ?m
?*Precio
?*?@param?c
?*Pago
?*/
público?estático?vacío?
cambiar(¿doble?m,?doble?c)?{
¿doble?z?=?c?-?m;
si?(z?lt;?0)? {
System.out.println("¡Pago insuficiente!");
}?else?if?(z?==?0)?{
System.out.println("No se requiere cambio.");
}?else?{
System.out.println("Cambiar***:"? ?z ? ?"元");
System.out.println("dónde: ");
for?(int?i?=?moneys.length?-? 1; ?i?gt;=?0;?i--)?{
double?money?=?moneys[i];
int?count?=?0 ;
while?((z?-?money)?gt;=?0)?{
z?-=?money;
contar p>
}
if?(count?gt;?0)?{
System.out.println(dinero? ?"元:"? ?count ? ? "张");
}
}
}
}
}