aboutsummaryrefslogtreecommitdiff
path: root/rcc-legacy/tests/sysy_lvX/076_hanoi.sy
blob: 063bef8461a773edb03d7232a32b9ebaf4004f8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

void move(int x, int y)
{
    putint(x); putch(32); putint(y); putch(44); putch(32);
}

void hanoi(int n, int one, int two, int three)
{
    if (n == 1)
        move(one, three);
    else {
        hanoi(n - 1, one, three, two);
        move(one, three);
        hanoi(n - 1, two, one, three);
    }
}

int main()
{
    int n = getint();
    while (n > 0) {
        hanoi(getint(), 1, 2, 3);
        putch(10);
        n = n - 1;
    }
    return 0;
}