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

Algoritmo: numero de cinco cifras sacar billetes y monedas

Estas en el tema de Algoritmo: numero de cinco cifras sacar billetes y monedas en el foro de Programación General en Foros del Web. Hola chicos, Estoy haciendo un algoritmo que a partir de un numero de cinco cifras calcule los billetes y monedas en pesetas, como este ejemplo: ...
  #1 (permalink)  
Antiguo 30/01/2009, 05:05
Avatar de Seskin  
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 29
Antigüedad: 15 años, 3 meses
Puntos: 0
Algoritmo: numero de cinco cifras sacar billetes y monedas

Hola chicos,

Estoy haciendo un algoritmo que a partir de un numero de cinco cifras calcule los billetes y monedas en pesetas, como este ejemplo:

22578, seria:

2 billetes de 10.000 pesetas
1 billete de 2.000 pesetas
1 moneda de 500 pesetas
1 moneda de 50 pesetas
1 moneda de 25 pesetas
1 moneda de 2 pesetas
1 moneda de 1 peseta

Yo he empezado el algoritmo tal que asi:

Código:
INICIO PROGRAMA

Declarar variables a,b,c,d,e,f,g como numeros

Solicitar numero de cinco cifras

Recoger en "a"

Funcion:

b=a/10000
c=a/1000
d=a/100
e=a/10
f=a/1

Condicion:

Imprimir (b) numero billetes de 10000

Si (c no es igual a 5)
Imprimir (c partido por 2) numero de billetes

y asi sucesivamente
No he declarado ni numero real o integro, partimos de la base de que no sabemos declarar numeros reales, por lo tanto cualquier numero dividido dará como resultado numero entero.
Mi problema es que no se como hacer para encontrar el factor mil, es decir, en el otro ejemplo son 22 mil, como saco el factor 2 mil?
Tengo claro que mi algoritmo está mal por eso mismo porque si divido 22000 entre 1000 dará 22, ahora necesito sacar de 22, un factor, no los dos.

Alguna solucion?

Gracias a todos.
  #2 (permalink)  
Antiguo 30/01/2009, 21:19
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Algoritmo: numero de cinco cifras sacar billetes y monedas

necesitas usar el reciduo de tu division asi tendrias

22555/10000 eso te da los billetes de 10000
pero el reciduo de la division te daria 2555 que es el que usaras para el de la sigueinte denominacion


es un simple encadenado de residuos (modulo o como le gustes llamar)
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 03/02/2009, 13:03
 
Fecha de Ingreso: agosto-2007
Ubicación: Lima
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Algoritmo: numero de cinco cifras sacar billetes y monedas

Bueno lo unico que tienes que hacer es la descompocicion polinomica va como sigue:

1)tienes que capturar el modulo(residuo) de la division de la cantidad entre 10 (num/10)
2)Capturas la division entera (num\10); y con ese resultado repites el paso 1

usarias un ciclo repetitivo.
  #4 (permalink)  
Antiguo 04/02/2009, 08:44
Avatar de Seskin  
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 29
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Algoritmo: numero de cinco cifras sacar billetes y monedas

Ok, gracias por los aportes, ya lo tengo hecho.

Un saludo a todos !
  #5 (permalink)  
Antiguo 11/02/2009, 10:20
Avatar de Seskin  
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 29
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Algoritmo: numero de cinco cifras sacar billetes y monedas

Bueno, he hecho el programa en C, aqui os dejo el código.

Código:
#include<stdio.h>
#include<conio.h>
main()
{
long int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,z=0,zz=0;
clrscr();
printf("Programa que valora las monedas de curso legal...");
printf("\n<Valor en pesetas>");
printf("\nIngrese un numero de 5 cifras: ");
scanf("%ld",&a);
b=a/10000;/*Billetes de 10000*/
printf("Hay ");
printf("%ld",b);
printf(" Billetes de 10000");
c=a-b*10000;/*Billetes de 5000*/
d=c/5000;
printf("\nHay ");
printf("%ld",d);
printf(" Billetes de 5000");
e=c-d*5000;/*Billetes de 2000*/
f=e/2000;
printf("\nHay ");
printf("%ld",f);
printf(" Billetes de 2000");
g=e-f*2000;/*Billetes de 1000*/
h=g/1000;
printf("\nHay ");
printf("%d",h);
printf(" Billetes de 1000");
i=g-h*1000;/*Monedas de 500*/
j=i/500;
printf("\nHay ");
printf("%ld",j);
printf(" Monedas de 500");
l=i-j*500;/*Monedas de 200*/
m=l/200;
printf("\nHay ");
printf("%ld",m);
printf(" Monedas de 200");
n=l-m*200;/*Monedas de 100*/
o=n/100;
printf("\nHay ");
printf("%ld",o);
printf(" Monedas de 100");
p=n-o*100;/*Monedas de 50*/
q=p/50;
printf("\nHay ");
printf("%ld",q);
printf(" Monedas de 50");
r=p-q*50;/*Monedas de 25*/
s=r/25;
printf("\nHay ");
printf("%ld",s);
printf(" Monedas de 25");
t=r-s*25;/*Monedas de 10*/
u=t/10;
printf("\nHay ");
printf("%ld",u);
printf(" Monedas de 10");
v=t-u*10;/*Monedas de 5*/
w=v/5;
printf("\nHay ");
printf("%ld",w);
printf(" Monedas de 5");
z=v-w*5;/*Monedas de 2*/
zz=z/2;
printf("\nHay ");
printf("%ld",zz);
printf(" Monedas de 2");
printf(\n\n************************");
printf("\nPresione cualquier tecla para salir...");
getch();
}

Saludos !
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 06:11.