栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构 递归(递归求和and汉诺塔)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构 递归(递归求和and汉诺塔)

一.递归求和


1.总代码

#include

int  addTo(int paraN) {
	int tempSum;
	printf("entering addTo(%d)rn",paraN);
	if (paraN <= 0)  {
		return 0;
	}
	else{
		tempSum = addTo(paraN - 1) + paraN;
		printf(" return %drn",tempSum);
		return tempSum;
	}
}

int clearAddTo(int paraN) {
	if (paraN <= 0){
		return 0;
	}
	else{
		return clearAddTo(paraN - 1) + paraN;
	}
}

void addToTest() {
	int n, sum;
	printf("---addToTest begins. ----rn");
	
	n = 4;
	sum = addTo(n);
	printf("rn 0 adds to %d gets %d.rn",n,sum);
	
	n = 1;
	sum = addTo(n);
	printf("rn 0 adds to %d gets %d.rn",n,sum);
	
	n = -1;
	sum = addTo(n);
	printf("rn 0 adds to %d gets %d.rn",n,sum);
	
	printf("----addToTest ends.rn");
}

int main(){
	addToTest();
	return 0;
}

2.运行结果

----addToTest begins. ----
2 plates
A -> C
A -> B
C -> B
3 plates
A -> B
A -> C
B -> C
A -> B
C -> A
C -> B
A -> B
----addToTest ends.

二.汉诺塔

1.先上图

 

 2.再上代码

#include

void hanoi(int paraN, char paraSource, char paraDestination, char paraTransit) {
	if (paraN <= 0){
		return;
	}
	else{
		hanoi(paraN - 1, paraSource, paraTransit, paraDestination);
		printf("%c -> %c rn",paraSource, paraDestination);
		hanoi(paraN - 1, paraTransit, paraDestination, paraSource);
	}
}

void hanoiTest(){
	printf("----addToTest begins. ---- rn");
	
	printf("2 plates rn");
	hanoi(2,'A','B','C');
	
	printf("3 plates rn");
	hanoi(3,'A','B','C');
	
	
	
	printf("----addToTest ends.rn");
}

int main(){
	hanoiTest();
	return 0;
}

3.运行结果

----addToTest begins. ----
2 plates
A -> C
A -> B
C -> B
3 plates
A -> B
A -> C
B -> C
A -> B
C -> A
C -> B
A -> B
----addToTest ends.

总体思想,因为不能将大的盘子放在小的盘子上面,所以最大的那个盘子位置不会影响到上面n-1个盘子的移动,因此我们只需要将上面的盘子都移动到另一个柱子上然后将最后一个盘子移动到目标柱子上然后将前面n-1个盘子以同样的原理移动就可以做到将所有的盘子都移动到目标柱子上面了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875474.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号