U E D R , A S I H C RSS

Hanoi Problem/상협

  • 는 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);
	}
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:21
Processing time 0.0074 sec