Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Dawman en 3 Mayo 2013, 16:19 pm



Título: Recursividad c#
Publicado por: Dawman en 3 Mayo 2013, 16:19 pm
Escribe una acción recursiva en c# que escriba los dígitos enter n (n>0) en el mismo orden pero, separados por en espacio.
por ejemplo: si n=8956, hay que devolver 8 9 5 6

Alguna ayudita???


Título: Re: Recursividad c#
Publicado por: Dawman en 4 Mayo 2013, 12:26 pm
Es urgente!! lo necesito para esta noche!!


Título: Re: Recursividad c#
Publicado por: cypascal en 4 Mayo 2013, 13:55 pm
¿Pero si mañana es domingo?


Título: Re: Recursividad c#
Publicado por: $Edu$ en 4 Mayo 2013, 14:39 pm
No se hacen tareas aca, asi que podrias dejarnos tu intento o tu idea. Yo la verdad que pensandolo solamente no doy con la solucion, porque nunca en mi vida haria eso recursivamente, no es necesario, pero se ve que te lo ha pedido un profesor de esos que odias todo el año xD


Título: Re: Recursividad c#
Publicado por: Dawman en 4 Mayo 2013, 17:15 pm
Yo he puesto esto, el problema es q me invierte el numero!!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ex1_recurs
{
    class Program
    {
        static int separar(int num)
        {
            Console.Write((num %10) + " ");
            if (num / 10 == 0) return num;
           
            else return separar(num/10);
       
        }
        static void Main(string[] args)
        {
            int num;
            Console.WriteLine("Escriu un numero");
            num = Convert.ToInt32(Console.ReadLine());
            while(num<0)
                    {
                         Console.WriteLine("Escriu un numero");
                         num = Convert.ToInt32(Console.ReadLine());
                    }
                   
            separar(num);
            Console.WriteLine();
            Console.ReadKey();
        }
    }
}


Título: Re: Recursividad c#
Publicado por: Dawman en 4 Mayo 2013, 17:17 pm
¿Pero si mañana es domingo?

Hay que entragarlo via Moodel esta noche!!


Título: Re: Recursividad c#
Publicado por: Dawman en 4 Mayo 2013, 18:35 pm
No se hacen tareas aca, asi que podrias dejarnos tu intento o tu idea. Yo la verdad que pensandolo solamente no doy con la solucion, porque nunca en mi vida haria eso recursivamente, no es necesario, pero se ve que te lo ha pedido un profesor de esos que odias todo el año xD

NO TRATABA DE QUE ME HAGAN LAS TAREAS, BUSCABA AYUDA QUE AQUI NO HE ENCONTRADO... PERO AUNQUE ME COSTO 2 DIAS DAR CON LA SOLUCIÓN, LO HICE YO MISMO!!!
ESTA ES UNA SOLUCION... SE PUEDE OPTIMIZAR!!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ex1_recurs
{
    class Program
    {       
       
        static int separar(int num3)
        {
            Console.Write((num3 % 10) + " ");
            if (num3 / 10 == 0) return num3;

            else return separar(num3 / 10);
        }

        static void Main(string[] args)
        {
            int num;
            Console.WriteLine("Escriu un numero");
            num = Convert.ToInt32(Console.ReadLine());
            while(num<0)
                    {
                         Console.WriteLine("Escriu un numero");
                         num = Convert.ToInt32(Console.ReadLine());
                    }
                   
            String num2 = "";
            String aux = "";
            String nbre = Convert.ToString(num);           
            for (int j = nbre.Length - 1; j >= 0; j--)
            {
                aux = Convert.ToString(nbre[j]);
                num2 = num2 + aux;
            }
           
            int num3 = Convert.ToInt32(num2);
            separar(num3);
            Console.WriteLine();
           
        }
    }
}


Título: Re: Recursividad c#
Publicado por: $Edu$ en 4 Mayo 2013, 20:42 pm
  Console.WriteLine("Escriu un numero");
            num = Convert.ToInt32(Console.ReadLine());
            while(num<0)
                    {
                         Console.WriteLine("Escriu un numero");
                         num = Convert.ToInt32(Console.ReadLine());
                    }

Eso lo puedes cambiar, usando Do-While.


Título: Re: Recursividad c#
Publicado por: DarK_FirefoX en 6 Mayo 2013, 16:21 pm
Te los devolvia al reves, porque la recursividad funciona como un Stack (pila) donde la primera llamada que se haga se devuelve de ultima, asi que ya sabes, utiliza una cola (Queue), para devolverlos bien. No obstante. Me parece que ese ejercicio es un poco BOBO para hacerlo recursivamente. Salu2s