style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

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

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

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:

def billetes = [10000, 5000, 1000, 500, 200, 100, 50, 20, 5]
int monto = Integer.parseInt(args[0])
billetes.each {
        int cuantos = monto / it
        if (cuantos > 0) {
                println "Necesitas ${cuantos} billetes de ${it}"
        }
        monto = monto % it
}
if (monto > 0) {
        println "al final te sobra ${monto}"
} else {
        println "y con eso queda exacto"
}

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

Imagen de ezamudio

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: http://bit.ly/DelProblemaAlCodigoEn4Pasos 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.

Imagen de JaimeItlzc

Puede ser sencillo!

Puede ser sencillo pero pues no se dependiendo de como lo quieras tu por ejemplo:

System.out.println("Cantidad:");
cantidad=Integer.parseInt(in.readLine());

billetes1000=(int)(cambio/1000.0);
cantidad-=billetes1000*1000;

System.out.print("Billetes de 1000:"+billetes1000);

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

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">