递归
Gummary
这个作者很懒,什么都没留下…
展开
-
C++_递归排列产生器
含有n个元素的集合,共有n!中不同的排列。 先取出一个元素,然后将剩下n-1个元素排列,获得一种情况,然后取出另一个元素,将剩下n-1个元素排列,获得第二种情况,然后继续取出元素,直至第n个,而剩下的n-1个排列又可以产生n-1中情况,此时便完成了一次递归,也就是完成n-1的排列问题也就解决了n个元素的排列问题代码#include <iostream>using namespace std;voi原创 2015-09-10 20:55:56 · 683 阅读 · 0 评论 -
C++_递归实现汉诺塔
A为存放盘子的塔,B为目标塔,C为辅助塔 算法分为三步 一、将A上n-1个盘子全部放到C塔上 二、将A上剩下的一个盘子放到B塔上 三、将C塔上的盘子全部放到B塔上注:不需要考虑如何移动n-1个盘子递归过程: 首先,将A上n-1个盘子放到C上,然后将A上剩下的一个盘子放到B上,然后可以看成A为辅助塔,B为目标塔,C为放盘子的(B中有一个最大的盘子,但任何盘子都能放到上面,所以可以看做为空),原创 2015-09-10 20:27:24 · 23211 阅读 · 2 评论 -
C++_子集生成算法汇总
增量构造算法每次递归选取一个值放入到集合中,每次递归也输出一遍 递归结束就是无法向集合中添加元素时#include <iostream>using namespace std;//cur用于确定子集的大小void print_subset(int *A,int n,int cur){ if(cur==0) cout << "kong"; for(int i = 0;i<cu原创 2015-09-12 10:16:32 · 6555 阅读 · 1 评论 -
C++_递归习题汇总
霍纳规则霍纳规则是一种使用最少数目的乘法在点x0处计算多项式的方法。如果一个多项式为A(x)=anxn+an-1xn-1+……+a1x+a0,则霍纳规则为: A(x0)=(…(anx0+an-1)x0+…+a1)x0+a0由公式可以看出括号内的部分即为递归的过程,最后递归的出口应为a0#include <iostream>using namespace std;int Horner(int *a,原创 2015-09-11 20:00:51 · 3859 阅读 · 0 评论