现在的位置: 首页 > 综合 > 正文

Hanoi塔 递归解

2012年06月13日 ⁄ 综合 ⁄ 共 561字 ⁄ 字号 评论关闭

当A柱有n个圆盘时,移动次数为 2n_1

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 void Hanoi(intstringstringstring);
 6 
 7 int main()
 8 {
 9     Hanoi(3"A""B""C");
10     //cout << cnt << endl;
11 
12     return 0;
13     
14 }
15 
16 void Hanoi(int n, string A, string B, string C)
17 {
18     if( n == 1)
19     {
20         cout << A << " -> " << C << endl;
21         cnt++;
22     }
23     else
24     {
25         
26         Hanoi(n - 1, A, C, B);
27         cout << A << " -> " << C << endl;
28         Hanoi(n - 1, B, A, C);
29     }
30 }

结论: n个盘子的移动次数为2n-1

抱歉!评论已关闭.