Foros del Web » Programación para mayores de 30 ;) » Java »

programa para una cajera de banco

Estas en el tema de programa para una cajera de banco en el foro de Java en Foros del Web. HOLA A TODOS: quisiera saber si me pueden ayudar con esta tarea que me dejaron, hasta ahora estoy empezando en el tema de la programacion ...
  #1 (permalink)  
Antiguo 12/03/2011, 17:22
 
Fecha de Ingreso: marzo-2011
Mensajes: 1
Antigüedad: 13 años, 8 meses
Puntos: 0
programa para una cajera de banco

HOLA A TODOS: quisiera saber si me pueden ayudar con esta tarea que me dejaron, hasta ahora estoy empezando en el tema de la programacion y por mas que le doy vueltas al problema no le hallo una solucion . . . no les pido que me solucionen la tarea, por favor con una clave o una formula es suficiente....GRACIAS

un programa que indique a una cajera de banco el
número y denominación de los billetes que necesita darle a un cliente al hacer un
retiro. La cajera deberá darle al cliente billetes de la más alta denominación posible,
esto es, el menor número de billetes. Suponga que los retiros deben de ser en
cantidades múltiples de 10 pesos y que hay billetes de $10, $20, $50 y $100 pesos.
  #2 (permalink)  
Antiguo 12/03/2011, 21:36
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: programa para una cajera de banco

Hmmmm ... Tengo un algoritmo rondando por ahi para eso mismo. Greedy Algorithm.
Lo busque pero no lo encontre ... bueno, la idea es hacer uso del operando % que significa modulus, el restante de una division.

¿Como usarlo?
NOTA: EL CODIGO ES EN PHP, PERO ES FACIL PASARLO A JAVA (CREI QUE HABIA POSTEADO ESTO EN PHP)
Código PHP:
Ver original
  1. Digamos que el usuario solicita 1460, haces:
  2. $billetes100 = $cantidad%100; // devolvera 14
  3. $cantidad = $cantidad - ($billetes100*100);
  4. $billetes50 = $cantidad%50; //devuelve 1
  5. $cantidad = $cantidad - ($billetes50*50);
  6. $billetes20 = $cantidad%20; //devuelve 0
  7. $cantidad = $cantidad - ($billetes20*20);
  8. $billetes10 = $cantidad%10; //devuelve 1

Total: 14 billetes de 100, 1 de 50, 1 de 10.

Ahora bien, asi como te lo mostre es un ejemplo. La forma en que lo implemente fue poniendo las papeletas en un array y use un bucle while para hacerlo mas "automatizado" y "bonito" el codigo.

EDIT: Lo encontre rondando en mi correo, obvia las partes que no son necesarias:
Código PHP:
Ver original
  1. <?php
  2.  
  3. function greedyAlgorithm($cantidad, $papeletas = null) {
  4.     $resto = $cantidad;
  5.     $i = 0;
  6.    
  7.     while($resto != 0) {
  8.         $nuevas[$papeletas[$i]] = floor($resto/$papeletas[$i]);
  9.         $resto %= $papeletas[$i];
  10.         $i++;
  11.     }
  12.    
  13.     return $nuevas;
  14. }
  15.  
  16. $nuevas = greedyAlgorithm(1460, array(100,50,20,10));
  17.  
  18. echo '<pre>';
  19. var_dump($nuevas);
  20. echo '</pre>';
  21.  
  22. ?>

Resultado:
Cita:
array(4) {
[100]=>
float(14)
[50]=>
float(1)
[20]=>
float(0)
[10]=>
float(1)
}

Última edición por Ronruby; 12/03/2011 a las 22:03

Etiquetas: banco, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:10.