Problem z rekurencją hanoi

Problem z rekurencją hanoi
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
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?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

nie chce się skompilować poprawnie

Błąd, czy co?

A cd.wczytywania tekstu z klawiatury:

Kopiuj
x = Convert.ToInt32(Console.ReadLine());
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
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 :/

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Jaki błąd? ...

KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2518
0

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

Szarp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 48
0
Kopiuj
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();
        }
    }
}
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
System.Console.WriteLine(A);

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

Szarp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 48
0

Print name of the variable in c#

Kopiuj
using System.Linq.Expressions;
Kopiuj
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()());
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.