汉诺塔问题(竟然还与Sierpiński三角形分形有关) Tower of Hanoi // 把n个盘子从1(a)号柱子借助2(b)号柱子移到3(c)号柱子 // 总共要移 2^n-1 次 #include <iostream> using namespace std; void Move(int &x, int &y) // 没有真正移动盘子,只是输出方案 { cout << x << " --> " << y << endl; } void Hanoi(int n, int a, int b, int c) { if(n > 0) { Hanoi(n - 1, a, c, b); Move(a, c); Hanoi(n - 1, b, a, c); } } int main(void) { int num; cout << "How many diskes?" << endl; cin >> num; Hanoi(num, 1, 2, 3); return 0; } 看到维基百科上的介绍,页面上出现了个谢尔宾斯基三角形,有待深究。 不过想想,递归、自相似、分形都是大自然的规律!有相通之处。