명 ¶
- 는 Hanoi 문를 보면 를 는 보면 보는 보 더 많 .
- An = 2An-1 + 1
-
- 를 눈.
~cpp
void hanoi(int n,int a, int b) //
{
if(n!=0)
{
hanoi(n-1, a,inout(a,b)); //1 번 a 목링(b) 말 른 .
cout<<a<<"->"<<b<<"\n"; //2 번 링 목 링(b) .
hanoi(n-1, inout(a,b),b); //3번 번 -inout(a,b) 목링(b) ..
}
명 무 . 보..
}
¶
~cpp
#include <iostream>
using namespace std;
void hanoi(int n,int a, int b); //a, b 목 n
int inout(int i,int j);
int main()
{
int n;
cout<<"노 막대 를 ! : ";
cin>>n; // 받는.
hanoi(n,1,3);
return 0;
}
int inout(int i, int j) // 1,2,3 i,j (1,2,3 ) 리됨
{
if((i==1 && j==2) || (i==2 && j==1))
return 3;
else if((i==1 && j==3) || (i==3 && j==1))
return 2;
else
return 1;
}
void hanoi(int n,int a, int b) //
{
if(n!=0)
{
hanoi(n-1, a,inout(a,b));
cout<<a<<"->"<<b<<"\n";
hanoi(n-1, inout(a,b),b);
}
}










