Problem z rekurencją hanoi

0
namespace Hanoi
{
    class Program
    {
        void hanoi(int n, char A, char B, char C)
        {
            if (n > 0)
            {
                hanoi(n - 1, A, C, B);
                System.Console.WriteLine(A);
                hanoi(n - 1, B, A, C);
            }
        }
 
        static void Main(string[] args)
        {
            uint a = 3
            hanoi(a, 'A', 'B', 'C');
        }
    }
}

Może mi ktoś pomóc z tym program, bo nie wiem dlaczego nie chce się skompilować poprawnie?
Czy ktoś mógłby mi też napisać co muszę zrobić, żebym mógł wprowadzić wartość do zmiennej a z klawiatury?

0

nie chce się skompilować poprawnie

Błąd, czy co?

A cd.wczytywania tekstu z klawiatury:

x = Convert.ToInt32(Console.ReadLine());
0
namespace Hanoi
{
    class Program
    {
        void hanoi(int n, char A, char B, char C)
        {
            if (n > 0)
            {
                hanoi(n - 1, A, C, B);
                System.Console.WriteLine(A);
                hanoi(n - 1, B, A, C);
            }
        }
 
        static void Main(string[] args)
        {
            uint a = Convert.ToInt32(Console.ReadLine());
            hanoi(a, 'A', 'B', 'C');
        }
    }
}

Dalej jest jakiś błąd :/

0

Jaki błąd? ...

0

ty masz problem z rekurencją hanoi czy z wczytywaniem liczb, bo się zgubiłem?

0
using System; // dla Console i UInt32
using System.Threading; // dla Thread

namespace Hanoi
{
    class Program
    {
        static void Hanoi(uint n, char A, char B, char C)
        // static + nie int n, tylko uint n (podajesz uint)
        {
            if (n > 0)
            {
                Hanoi(n - 1, A, C, B);
                System.Console.WriteLine(A);
                Thread.Sleep(500);
                // żebyś widział cokolwiek
                Hanoi(n - 1, B, A, C);
            }
        }

        static void Main(string[] args)
        {
            uint a = 0; // wartość początkowa

            UInt32.TryParse(Console.ReadLine(), out a);
            // spróbuje przekształcić podany tekst na liczbę,
            // jak się nie uda to a będzie mieć swoją wartość
            // początkową
            Hanoi(a, 'A', 'B', 'C');
            Console.WriteLine("\nPress any key to exit...");
            Console.ReadKey();
        }
    }
}
0

Dziękuję pomogło :)
Mam jeszcze jedno pytanie dla linii:

System.Console.WriteLine(A);

na co musiałbym zamienić żeby w konsoli wyświetlało ('zmienna' -> 'zmienna')

0

Print name of the variable in c#

using System.Linq.Expressions;
static void Main(string[] args)
{
    string A = "B";

    Print(() => A);
    Console.ReadKey();
}

static void Print<T>(Expression<Func<T>> expression)
{
    Console.WriteLine("{0} = {1}",
        ((MemberExpression)expression.Body).Member.Name,
        expression.Compile()());
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1