早上突然想到就写了 心血来潮 写的比较垃圾 就随手一写 大家看看就好 别喷哈 嘿嘿
using namespace std;
int *a, *b, *c;
void Show(int* a, int *b, int *c,int ncout)
{
for (int i = 0; i < ncout;i++)
{
if (a[i] != 0)
{
for (int j = 0; j < ncout; j++)
{
if (c[j] != 0)
{
c[j-1] = a[i];
a[i] = 0;
i = j = 100;
}
if (j == ncout-1 && c[j] == 0)
{
c[j] = a[i];
a[i] = 0;
i = j = 100;
}
}
}
}
for (int i = 0; i < ncout; i++)
{
if (::a[i])
cout <<:: a[i];
else
cout << " ";
if (::b[i])
cout << ::b[i];
else
cout << " ";
if (::c[i])
cout << ::c[i];
else
cout << " ";
cout << endl;
}
cout << endl;
}
void hanoi(int n, int* a, int *b, int *c, int ncout)
{
if (n == 1)
Show(a, b, c, ncout);
else
{
hanoi(n - 1, a, c, b, ncout);
Show(a, b, c, ncout);
hanoi(n - 1, b, a, c, ncout);
}
}
int main()
{
int ncount = 3;
a = new int[ncount];
b = new int[ncount];
c = new int[ncount];
for (int i = 0; i < ncount; i++)
{
a[i] = i + 1;
b[i] = 0;
c[i] = 0;
if (::a[i])
cout << ::a[i];
else
cout << " ";
if (::b[i])
cout << ::b[i];
else
cout << " ";
if (::c[i])
cout << ::c[i];
else
cout << " ";
cout << endl;
}
hanoi(ncount,a,b,c, ncount);
system("pause");
<span style="white-space:pre"> </span>delete []a;
<span style="white-space:pre"> </span>delete []b;
<span style="white-space:pre"> </span>delete []c;
return 0;
}