汉诺塔
2015-10-09 01:04
183 查看
#include<stdio.h> #include<stdlib.h> int cnt; void hangnuo(int n,char x,char y,char z) //x借助y移到z { if(n==1) { printf("%c-->%c\n",x,z); //层数为一,直接从x移到z cnt++; } else { hangnuo(n-1,x,z,y); //将n-1个在x借助z移到y printf("%c-->%c\n",x,z);//将最后一层从x移到z cnt++; hangnuo(n-1,y,x,z); //将n-1个借助x移到z } } int main() { int n; scanf("%d",&n); hangnuo(n,'x','y','z'); printf("移动次数为%d\n",cnt); }
相关文章推荐
- [Javascript] Array - join()
- PyQt5程序
- 正常 压力测试
- 八皇后
- 编程习惯的总结
- 开发自定义控件的步骤
- mysql使用source导入,会自动断开并无法连接(编码问题)
- 开通自己的博客啦
- STM32F407IG开启FPU,做开方运算
- UITextView自适应高度
- 欢迎使用CSDN-markdown编辑器
- PopupWindow在android5.0以上底部弹出在虚拟按键下方的解决
- eclipse c语言开发环境遇到的问题与解决
- [深入理解Java虚拟机]第五章 调优案例分析与实战
- 《深入理解Linux网络技术内幕》阅读笔记(十九)
- 安卓病毒频发,做好手机安全防护很有必要
- 国庆随笔之二
- 使用Activity和Delegate与Adapter交互
- STM32F407IG多通道ADC-DMA采样
- 安卓手机很快也要普及3D Touch了