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

Algoritmo sin entender...

Estas en el tema de Algoritmo sin entender... en el foro de Programación General en Foros del Web. Haber si ustedes me pueden ayudar. Tenemos este problema: Un número tiene dígitos en aumento, si cada dígito es mayor o igual que el dígito ...
  #1 (permalink)  
Antiguo 11/11/2007, 16:58
Avatar de juantux  
Fecha de Ingreso: marzo-2005
Mensajes: 59
Antigüedad: 19 años, 8 meses
Puntos: 1
Algoritmo sin entender...

Haber si ustedes me pueden ayudar.

Tenemos este problema:

Un número tiene dígitos en aumento, si cada dígito es mayor o igual que el dígito que está a su izquierda, por ejemplo 45579. Hay exactamente 219 números con dígitos en aumento entre 1 y 999. ¿Cuantos números con dígitos en aumento hay entre 1 y 999.999?.

Hice este pequeño programa en C#:

Código:
static void Main(string[] args)
{
            int i, j, contador=0, digder=0, digizq=0, sw=0;
            int final = 999;
            string aux;
            for (i = 1; i <= final; i++)
            {
                aux = Convert.ToString(i);
                if (aux.Length > 1)
                {
                    for(j=1;j<aux.Length;j++)
                    {
                        digder = Convert.ToInt32(aux.Substring(aux.Length - j, 1));
                        digizq = Convert.ToInt32(aux.Substring(aux.Length - (j+1), 1));
                        if (digder >= digizq) sw=1;
                        else sw=0;
                    }

                    if (sw == 1) contador++;
                }
            }
}
Pero el resultado que me entrega es: 495. Lo mas probables que el problema no lo entienda bien o que esté mal planteado. Haber que me dicen ustedes.

Gracias.
  #2 (permalink)  
Antiguo 12/11/2007, 08:31
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 5 meses
Puntos: 28
Re: Algoritmo sin entender...

El problema es que solo te está tomando en cuenta los dos ultimos dígitos de la izquierda...por ejemplo el numero: 453, te va a decir que si tiene sus digitos en aumento...primero compara 5 y 3, sw = 0, luego compara 4 y 5 sw = 1, se sale del ciclo for y lo cuenta.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
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 23:23.