【二色汉诺塔 】
/*
二色漢諾塔
*/#include <stdio.h>void hanoi(int disks, char sources, char temp, char target)
{if(disks == 1){printf("move disk from %c to %c \n", sources, target);printf("move disk from %c to %c \n", sources, target);}else{hanoi(disks - 1, sources, target, temp);hanoi(1, sources, temp, target);hanoi(disks - 1, temp, sources, target);}
}void hanoi2colors(int disks)
{char source = 'A';char temp = 'B';char target = 'C';int i;for(i = disks / 2; i > 1; i--){hanoi(i - 1, source, temp, target);printf("move disk from %c to %c \n", source, temp);printf("move disk from %c to %c \n", source, temp);hanoi(i - 1, target, temp, source);printf("move disk from %c to %c \n", temp, target); }printf("move disk from %c to %c \n", source, temp);printf("move disk from %c to %c \n", source, target);
}int main()
{int n;printf("請輸入盤數:");scanf("%d", &n);hanoi2colors(n);return 0;
}
?
運行結果:
?
轉載于:https://www.cnblogs.com/libra-yong/p/6296341.html
總結
- 上一篇: 软件项目交付件模板整理清单
- 下一篇: ITU-RBT.656视频标准接口