De forma recursiva

Iniciado por :ohk<any>, 2 Septiembre 2008, 23:45 PM

0 Miembros y 1 Visitante están viendo este tema.

carlitos.dll

#10
Ahora si.

Código (java) [Seleccionar]

public static boolean tipo(int num)
    {
        if (num == 0)
        {
            return true;
        } else
        {
            if (num < 0){
                return tipo(num +- num) && false;
            }else {
                return tipo(num - num) || true;
            }
        }
    }


:ohk<any>

Cita de: carlitos.dll en  4 Septiembre 2008, 05:11 AM
Código (java) [Seleccionar]

    public static boolean tipo(int num)
    {
       
        if (num == 0)
        {
            return true;
        }
        else {
            if (num < 0){
                return tipo(num + 1) && false;
                }
            else {
            return tipo(num - 1);
            }
        }
    }



Congratulations

Well done, Carlitos.dll :D

have a nice day  ::)
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

carlitos.dll

Lo modifiqué justo, para que sea más efectivo.

Parece código ofuscado. :D

Ojalá coloques más ejercicios.


:ohk<any>

Cita de: carlitos.dll en  4 Septiembre 2008, 05:18 AM
Lo modifiqué justo, para que sea más efectivo.

Parece código ofuscado. :D

Ojalá coloques más ejercicios.



:D

viste que si había una solución  :P
Bien hecho, solo tenías que ser mas perseverante.  ;)

Ahora, a pedido tuyo voy a seguir posteando ejercicios mañana.

Un saludo

OHK
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

:ohk<any>

Hola :D

Como lo prometido es deuda, aquí les traigo resuelto el ejercicio de verificar si un número es positivo.
Ya sé que lo resolvieron pero lo tengo resuelto de otra forma, un poco mas "compleja".
Espero les sirva y le entiendan.

Código (java) [Seleccionar]

    public boolean positivo(int n){
    if(n>0) return true;
    else return negativo(n);
    }

    public boolean negativo(int n){
    if(n<0) return false;
    else return  positivo(n);
    }



Bueno que al final es lo mismo, pero utiliza recursividad cruzada o indirecta.

Recursividad cruzada o indirecta
Son algoritmos donde una función provoca una llamada a sí misma de forma indirecta, a través de otras funciones.

Un saludo

OHK

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

carlitos.dll

Está bueno, pero, y no es que diga pero por decir, si lo analizas, si se ingresa un 0, quedará "rebotando" todo el rato.

:ohk<any>

Cita de: carlitos.dll en  4 Septiembre 2008, 16:17 PM
Está bueno, pero, y no es que diga pero por decir, si lo analizas, si se ingresa un 0, quedará "rebotando" todo el rato.


Pues, si
pero en mi caso no estoy tomando en cuenta el montón de posibilidades que existen de que un usuario introduzca cualquier valor, pero bueno...

Estos ejercicios están para ayudarnos a crear lógica.
He preparado un par de ejercicios mas de este tipo, los posteo mas tarde.

Un saludo

OHK
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

:ohk<any>

Hola :D

Bueno aquí les dejo otro ejercicio, que tampoco esta muy difícil.

Utilizando Java y Recusrividad, hacer un método que calcule el Máximo Común Divisor de 2 Números Naturales.

Espero sus respuestas.

Un saludo

OHK
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

chrominum

#18
Cita de: ohk en  4 Septiembre 2008, 20:01 PM
Hola :D

Bueno aquí les dejo otro ejercicio, que tampoco esta muy difícil.

Utilizando Java y Recusrividad, hacer un método que calcule el Máximo Común Divisor de 2 Números Naturales.

Espero sus respuestas.

Un saludo

OHK

¿Vale el algoritmo de Euclides?

Código (csharp) [Seleccionar]
        public static uint MCD(uint a, uint b)
        {
            return (b != 0) ? MCD(b, a % b) : a ;
        }


Esta en c# pero es prácticamente igual que Java.

:ohk<any>

 :¬¬

Citarprácticamente

:¬¬

Código (java) [Seleccionar]

static int sacar_mcd(int a, int b)
    {
        if(b==0)
            return a;
        else
            return sacar_mcd(b, a % b);
    }


Alguien me puede decir si mi algoritmo es igual al de ArcheritONE  :huh:
:¬¬ :¬¬

Que malo es saber solo Php, Java y un poco de Delphi  :P



Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.