📄 1997.cpp
字号:
#include <stdio.h>
#include <string.h>
int a[70], b[70], c[70];
int n;
int hanoi(int n, int a[], int b[], int c[])
{
if (n == 1)
{
if (b[0] > 0)
{
return 0;
}
else
{
return 1;
}
}
if (a[1] == n)
{
int i;
a[0]--;
for (i = 1; i <= a[0]; i++)
{
a[i] = a[i + 1];
}
if (a[0] == 0 && c[0] == 0)
{
return hanoi(n - 1, b, a, c);
}
else
{
return hanoi(n - 1, a, c, b);
}
}
else if (b[1] == n)
{
return 0;
}
else if (c[1] == n)
{
int i;
c[0]--;
for (i = 1; i <= c[0]; i++)
{
c[i] = c[i + 1];
}
return hanoi(n - 1, b, a, c);
}
}
int main()
{
int test, i;
scanf("%d", &test);
while (test--)
{
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(c, 0, sizeof(c));
scanf("%d", &n);
scanf("%d", &a[0]);
for (i = 1; i <= a[0]; i++)
{
scanf("%d", &a[i]);
}
scanf("%d", &b[0]);
for (i = 1; i <= b[0]; i++)
{
scanf("%d", &b[i]);
}
scanf("%d", &c[0]);
for (i = 1; i <= c[0]; i++)
{
scanf("%d", &c[i]);
}
if(hanoi(n, a, b, c) == 1)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -