汉诺塔
来源:互联网 发布:人工智能 人类 奴隶 编辑:程序博客网 时间:2024/06/07 04:51
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: fibnacci.cpp* 作 者:高古尊* 完成日期:2013 年11 月25 日* 版本号: v1.0** 输入描述:要移动盘子的个数* 问题描述:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。古代有一个梵塔,塔内有三个座 A、B、C,A 座上有64 个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64 个盘子从A 座移到C 座,但每次只能允许移动一个盘子,并且在移动过程中,3 个座上的盘子始终保持大盘在下, 小盘在上* 程序输出:盘子的移动规律* 问题分析:结合递归函数;盘子的移动规律:先将n-1个盘子从A移动到C,再将1个盘子从A移动到B;再将n-1个盘子从C移动到A;再将1个盘子从B移动到C;最后将n-1个盘子从A移动到C*/#include <iostream>using namespace std;void pingyi(int);void arcpingyi(int);int main(){ int n; cin>>n; pingyi(n); return 0;}void pingyi(int n){ if(n==1) { cout<<"A→C\n"; return ; } else { pingyi(n-1); cout<<"A→B\n"; arcpingyi(n-1); cout<<"B→C\n"; pingyi(n-1); return ; }}void arcpingyi(int n){ if(n==1) { cout<<"C→A\n"; return ; } else { arcpingyi(n-1); cout<<"C→B\n"; pingyi(n-1); cout<<"B→A\n"; arcpingyi(n-1); return ; }}
小结:return ;就是将以上全部过程返回。
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- 汉诺塔
- Java操作Microsoft Word之jacob 转 很补错!
- 基于虚拟机的Web开发环境配置(3)-之网络设置
- OpenCV K均值代码笔记
- 黑马程序员--Java基础之IO流(1)
- iphone在使用tabbar时如何使用转换动画
- 汉诺塔
- 设计模式--观察者模式--UML
- suse 11下结合gitolite 配置git web
- IOS中的MVC设计模式理解
- CreateFile的FILE_FLAG_NO_BUFFERING 问题
- Win 32 多线程程序设计学习笔记之三:*WaitFor*Object函数
- TQ2440裸板---adc模数转换(详细注释)
- 快速排序算法---20世纪十大算法之一
- 手工设置Windows服务依赖关系