Neste tutorial vou mostrar como implementar o algorítimo da torre de Hanói usando recursividade em C# console.
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
namespace TorreHanoiConsole
{
    class Program
    {
        static Stopwatch  watch = new Stopwatch();
        static double  cont;
        static void  Main(string[] args)
        {
            Program programa = new Program();
            programa.Inicio();
        }
        private void  Inicio()
        {
            Console.WriteLine("Entre com numero de  discos");
            double numero = double.Parse(Console.ReadLine());
            watch.Start();
            cont = 0;
            moverTorre(numero, 'A', 'C',  'B');
            watch.Stop();
            Console.WriteLine("\nEste é o Numero de Discos:  " + numero);
            Console.WriteLine("\nTempo levado em ms: " + watch.ElapsedMilliseconds);
            Console.WriteLine("\nNumero de Movimentos:  " + cont);
            Console.ReadLine();
        }
        private void moveUmDisco(char inicio, char fim)
        {
            cont = cont +  1;
            Console.WriteLine(Convert.ToString("\n" + inicio +  " " + fim) + "  Numero Movimentos = " + cont);
        }
        private void moverTorre(double n, char inicio, char fim, char temp)
        {
            if (n ==  1)
            {
                moveUmDisco(inicio, fim);
            }
            else
            {
                moverTorre(n - 1, inicio, temp, fim);
                moveUmDisco(inicio, fim);
                moverTorre(n - 1, temp, fim,  inicio);
            }
        }
    }
}
Veja Fatorial Recursivo Java
Participe da promoção "Torre de Hanói", basta acessar o link abaixo para participar
http://tecnicasparainformatica.blogspot.com.br/2012/10/torre-de-hanoi.html
 
Nenhum comentário:
Postar um comentário