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

【C++】递归 求n的阶乘 & 斐波那契数列第n项 & 1~n全排列

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

【C++】递归 求n的阶乘 & 斐波那契数列第n项 & 1~n全排列

递归 求n的阶乘 & 斐波那契数列第n项 & 1~n全排列 前言 什么是递归? 递归在于反复调用自身函数,但是每次把问题范围缩小,直到缩小到可以直接得到边界数据的结果,然后再在返回的路上求出对应的解。 递归的两个重要概念:递归边界 递归式 。其中递归式式将原问题分解为若干个子问题的手段,而递归边界则是分解的尽头。 例题 下面看几个关于递归的经典题目 求n!
#include

using namespace std;
//求n的阶乘 
int Func(int n){
	if (n == 0) return 1;//当到达递归边界Func(0)时,返回Func(0) == 1
	else return Func(n - 1) * n;//没有到达递归边界时就将递归式一直进行下去 
} 
int main(){
	int n;
	cin>>n;
	cout< 
递归求Fibonacci数列的第n项 
#include

using namespace std;

//递归求Fibonacci数列的第n项
//Fibonacci(斐波那契数列):满足 F(0) = 1,F(1) = 1,F(n) = F(n - 1)+F(n - 2)(n >= 2) 的数列
int Func(int n){
	if(n == 0||n == 1) return 1;//递归边界 
	else return Func(n - 2) + Func(n - 1);//递归式 
}
int main(){
	int n;
	cin>>n;
	cout< 
全排列 
#include

using namespace std;

//1~n的全排列 
const int k = 11;
// P为当前排列,hashTable记录整数x是否已经在P中 
int n, P[k], hashTable[k] = {false}; 
//当前处理排列的第index位
void permutation(int index){
	if(index == n + 1){//递归边界,已经处理完排列的1~n位 
		for(int i = 1;i <= n;i++){
			cout< 
1~n全排列 运行结果如下图 

1~n全排列中的散列概念及案例请访问:【C++】整数散列&字符串散列

如有错误,欢迎各位指正
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429893.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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