C/Visual C - Ayuda con un algoritmo

 
Vista:

Ayuda con un algoritmo

Publicado por Perdido_en_C (2 intervenciones) el 09/01/2007 19:35:12
Hola. A ver si pueden ayudarme. Necesito un algoritmo (o una idea, vaya) para hacer lo siguiente:

Teniendo un número inicial (pongamos el 1) y uno final (1000, por ejemplo), tengo que contar los números que hay entre ellos de varios pasos. Me explico con unos ejemplos:

Desde 1 hasta 1000 en 2 pasos: sería de 1 hasta 499, y de 500 hasta 1000.
Desde 1 hasta 1000 en 3 pasos: desde 1 hasta 333, desde 334 hasta 667, y de 668 hasta 1000.
Desde 100000 hasta 130000 en 2 pasos: desde 100000 hasta 114999, y desde 115000 hasta 13000.

Toda ayuda será bien recibida. Gracias a todos. ¡Feliz año!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con un algoritmo

Publicado por Nelek (816 intervenciones) el 10/01/2007 13:40:14
int segmento = (final - incio) / pasos;

for (int i = 0; i < pasos; i++)
{
if (i < (pasos - 1))
{
for (int j = inicio; j < (inicio + segmento); j++)
{
printf ("Contando por... %d", j);
}
inicio = inicio + segmento)
}
else
{
for (int k = inicio; k < final; k++)
{
printf ("Contando por... %d", k);
}
}


Nota: tendras que depurarlo un poco para que se adapte a casos donde "segmento" sea un numero racional (como en tu 3 ejemplo, donde valdria 333,3333333) y evitar la perdida de numeros por el medio, pero mas o menos ahi tienes la idea
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con un algoritmo

Publicado por Perdido_en_C (2 intervenciones) el 10/01/2007 17:26:31
Muchas gracias. No era exactamente lo que buscaba (no me sé explicar, seguramente). La idea era saber de qué número se partía y a cuál se llegaba en cada "paso", de forma que si tengo que recorrer de 1 a 1000 en 2 pasos, me tendría que quedar con el 1 y el 499 del primer paso, y luego con el 500 y el 1000 del segundo, que luego tendría que pasar como parámetros a una función que no viene al caso.

De todas formas, me quedo con la idea y le daré una vuelta. Muchas gracias otra vez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con un algoritmo

Publicado por Nelek (816 intervenciones) el 11/01/2007 15:05:44
aun más facil;

int segmento = (final - incio) / pasos;

for (int i = 0; i < pasos; i++)
{
if (i < (pasos - 1))
{
printf ("El intervalo va de %d a %d", inicio, (inicio + segmento));
inicio = inicio + segmento;
}
else
{
printf ("El intervalo va de %d a %d", inicio, final);
}
}

pero sigues teniendo que tener en cuenta los casos de intervalos no exactos, por ejemplo el 1000 en 3 trozos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar