programa de cambio en java
estoy haciendo un programita en java al que debes darle cierta cantidad como entrada y tien que devolver a cuantos billetes de 10000, 5000,1000,500,200,100,50,20,5 y 1 equivalen pensaba hacerlo con if pero no se si se a demaiado codigo, esper que pueda ayudarme. estoy empleando JFrame
- herdeagb's blog
- Inicie sesión o regístrese para enviar comentarios
Algoritmo
Mete las denominaciones de los billetes en un arreglo, ordenadas de la más grande a la más chica. Tienes una variable con el monto que quieres desglosar en billetes. Recorrer el arreglo y por cada elemento:
1. Haces división entera del monto entre el elemento; el resultado es el número de billetes de esa denominación que necesitas.
2. Le quitas esa cantidad al monto. Puedes hacer módulo del monto entre la denominación y guardar eso en el mismo monto.
Al final del ciclo, el monto tendrá solamente lo que sobra. Por ejemplo si no metes denominación de 1 en el arreglo, al final el monto debe ser máximo 4.
En groovy es algo asi:
Eso te debe arrojar algo asi por ejemplo para 56738:
Necesitas 5 billetes de 10000
Necesitas 1 billetes de 5000
Necesitas 1 billetes de 1000
Necesitas 1 billetes de 500
Necesitas 1 billetes de 200
Necesitas 1 billetes de 20
Necesitas 3 billetes de 5
al final te sobra 3
agradecimiento
lo voy a probar y gracias por tu ayuda
java
oye otro favor ezamudio como convierto de un carater ascci a su valor en decimal o hexadecimal
tema
eso ya lo preguntaste aparte y ya tienes 2 respuestas
Pueque si, pue que no
Usando if's puede ser muy largo, o quizá no.
Antes de intentar hacer el programa, debes de hacer el algoritmo, eso se va a aclarar muchas dudas de implementación y así no tendrás que andar mezclando conceptos cuando lo estés implementando.
Por ejemplo lo de convertir en ascii no tiene nada que ver con el problema en si mismo, estas de acuerdo? Es un problema "extra" que tienes para poder alcanzar la meta.
Sin embargo, si notas que este tipo de problemas empieza a permear en tu código, deberías de detenerte y dar unos pasos atrás para ver como vas a resolver el problema en primer lugar.
Por si aún no has visto esto aquí te va este link: que te explica como pasar de un planteamiento de problema tipo:
"... Tienen un cajero con billetes en denominación de 500, etc. etc. et y necesita regresar el saldo de blabalabal para que etc.e tc "
A algo como un analisis de los requerimientos y luego a un pseudo código y de ahí a un programa.
Las cuestiones como la presentación o las funciones de utilería ( ejemplo JFrame o convertir a ascii ) deberían de quedar fuera de tu problema principal.
A veces nos cuesta separar este tipo de cosas.
Si tienes tu código ya medio jalando lo puedes postear y te podemos ayudar en algo.
Espero te sirva.
Puede ser sencillo!
Puede ser sencillo pero pues no se dependiendo de como lo quieras tu por ejemplo:
Y asi sucesivamente.
Saludos.
thanks
gracias lo tomare en cuenta
thanks
gracias por el aporte
cambio espero sirva
import java.util.*;
public class Cambio
{
public static void main(String[] args)
{
System.out.println("Ingrese una cantidad cantidad:");
Scanner entrada=new Scanner(System.in);
double cantidad=entrada.nextDouble();
int pesos=(int)cantidad;
System.out.println("pesos="+pesos);
int d1000=pesos/1000;
System.out.println("Mil="+d1000);
int r1000=pesos%1000;
int d500=r1000/500;
System.out.println("Quinientos="+d500);
int r500=r1000%500;
int d200=r500/200;
int r200=r500%200;
System.out.println("Doscientos="+d200);
int d100=r200/100;
int r100=r200%100;
System.out.println("Cien="+d100);
int d50=r100/50;
int r50=r100%50;
System.out.println("Cincuenta="+d50);
int d20=r50/20;
int r20=r50%20;
System.out.println("Veinte="+d20);
int d10=r20/10;
int r10=r20%10;
System.out.println("Diez="+d10);
int d5=r10/5;
int r5=r10%5;
System.out.println("Cinco="+d5);
}
}