C#

C# 015 재귀함수를 이용한 하노이탑

hyun0229 2022. 3. 15. 21:47

재귀함수를 이용한 하노이탑 해결

using System;

namespace _015
{
    class Program
    {
        static void Hanoi(int step, char A, char B,char C)
        {
            if (step==1)
            {
                Console.WriteLine("{0}→{1}", A, C); //A에서 C로 이동 
            }
            else
            {
                Hanoi(step - 1, A, C, B); 
                Console.WriteLine("{0}→{1}", A, C); 
                Hanoi(step - 1, B, A, C);
            } //하노이 단계가 늘어날떄마다 
        }
        static void Main(string[] args)
        {
            Hanoi(4, 'a', 'b', 'c');
        }
    }
}

2개를 움직이기 위해서는 

a→b 작은 걸 어시로 움기고

a→c 큰 걸 골로

b→c 다시 작은걸 골로 의 움직임

 

결과

실행결과