Hola tengo una pequeña duda , alguien sabe algun algoritmo para cortar numeros es decir por ejm tengo esta sucecion de numeros 0123456789 y quisiera dividirla en grupos de a 3 o de a 4 quedando a si
(0123)
(4567)
(89) ,etc
alguien sabe de q manera podria cortarlos?
SALUDOS
Pero lo estas guardando en una cadena? O en una variable int?
¡Buenas!
Si trabajas con numeros enteros, tienes algunas opciones.
1- Los operadores aritmeticos (recuerda como funciona una division)
2- Pasar el numero a una cadena y posteriormente manipularlo (te tocara estudiar las cadenas)
3- (No se me ocurria otra opcion, pero por si la habia, no he dicho que fuesen dos) :silbar:
¡Saludos!
almacenalos en un string o en un array de chars
A mi se me ocurre dividirlo entre 10 a la i, q seria la varable de un for que vaya de 4 en 4... Un ejemplo...
int x=12345678;
int y=x/1000;
cout<<y<<endl;
Saludos...
EDITO:
Eso no se entiende :xD lo hice mas o menos como te dije... lo q pasa es que soy mejor en la practica :xD No puedo ponerte el codigo...
Pero lo que hice fue que al numero le reste el resultado de dividir el numero entre 10 a la 4... Es decir entre 10000 y multiplicado nuevamente entre 10000... El casting lo hace todo :xD
Me llevo como 5 lineas :xD pero si no pones avance no puedo poner el code
Saludos
Yo sin dudarlo sería transformarlo a un array de caracteres y así procesarlo.
int* parte(int valor, short int longitud)
{
int *pedazos, l = 1, s = valor;
while(longitud--)
l *= 10;
longitud=1;
while(s/=l)
longitud++;
pedazos = new int[longitud];
while(longitud--)
{
pedazos[longitud] = valor % l;
valor /= l;
}
return pedazos;
}
si la usas así: parte(0123456789, 4);
te devolverá un arreglo así:
[0 ][1 ][2 ]
[1 ][2345][6789]
el que te lo devuelva alrrevez (como lo pediste):
[0 ][1 ][2]
[1234][5678][9]
ya tu lo deberás modificar :P
es solo una idea. Ojala te sirve de algo, Saludos!
Definitivamente, leer el contenido en una cadena y luego procesarlo previa validación es la forma mas eficiente, estable, y segura de hacerlo.
Saludos