Chinaunix首页 | 论坛 | 博客
  • 博客访问: 137429
  • 博文数量: 94
  • 博客积分: 1572
  • 博客等级: 上尉
  • 技术积分: 925
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-04 00:03
文章分类

全部博文(94)

文章存档

2011年(94)

我的朋友

分类: C/C++

2011-04-07 09:52:57

  1. /*
  2.  * hanoi.c
  3.  */
  4. #include <stdio.h>
  5. #include <stdlib.h>

  6. int m_count = 0;

  7. void hanoi(int n, char from, char pass, char to)
  8. {
  9.     if (n == 0)
  10.         return;

  11.     m_count ++;

  12.     if (n == 1)
  13.         printf("%d: %c -> %c\n", n, from, to);
  14.     else {
  15.         hanoi(n-1, from, to, pass);
  16.         printf("%d: %c -> %c\n", n, from, to);
  17.         hanoi(n-1, pass, from, to);
  18.     }
  19. }

  20. int main(int argc, char **argv)
  21. {
  22.     int n = 0;
  23.     if (argc < 2) {
  24.         printf("usage: %s n\n", argv[0]);
  25.         return 1;
  26.     }

  27.     n = atoi(argv[1]);
  28.     hanoi(n, 'A', 'B', 'C');
  29.     printf("count: %d\n", m_count);
  30.     
  31.     return 0;
  32. }
阅读(305) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~