首页 > 编程语言 >C++用递归实现求解相关函数

C++用递归实现求解相关函数

时间:2023-01-11 17:22:16浏览次数:42  
标签:Status return 递归 求解 int Hanoi C++ char

//递归实现Hanoi塔问题
#include<iostream>
#include<cstdlib>
using namespace std;
#define MAXSIZE 100
#define OK 1
#define ERROR 0
typedef int Status;
typedef int Elemtype;
Status move(int n, char A, char C)//进行移东,将A移动到C柱子上
{
int m = 0;
cout << ++m << "," << n << "," << A << "," << C;
return OK;
}
Status Hanoi(int n, char A, char B, char C)//A为起始柱子,B为辅助柱子,C为目的柱子
{
if (n == 1)
{
move(1, A, C);
cout << "进行一次移动,从A塔移动到C塔。" << endl;
}
else
{
Hanoi(n - 1, A, C, B);
move(n, A, C);
Hanoi(n - 1, B, A, C);
}
return OK;
}
//递归求阶乘n!
Status Fat(int n)
{
if (n == 1) return 1;
else
{
return n * Fat(n - 1);
}
}
//递归求斐波那契函数
Status Fib(int n)
{
if (n == 1 || n == 2) return 1;
else return Fib(n - 1) + Fib(n + 1);
}

标签:Status,return,递归,求解,int,Hanoi,C++,char
From: https://www.cnblogs.com/shidawuyu/p/17044392.html

相关文章

  • C++实现链栈相关操作代码
    #include<iostream>#include<cstdlib>usingnamespacestd;#defineMAXSIZE100#defineOK1#defineERROR0typedefintStatus;typedefintElemtype;typedefstructSta......
  • C++构造函数【cherno课程学习】
    C++构造函数无参构造函数首先创造一个Entity类,在类里面有两个变量x,y以及一个方法#include<iostream>classEntity{public:floatX,Y;voidPrint(){......
  • 蹦床函数实现深度递归的深拷贝;递归改循环,避免栈溢出
    1、先写蹦床函数——可以将递归转为循环执行点击查看代码//蹦床函数functiontoc(func){letargsArr=[];letactive=false;returnfunction(){ar......
  • c++ 利用 chrono 打印时间
    c++利用chrono打印时间自己封装的一个打印时间的类,可以打印秒、毫秒、微秒、纳秒。头文件#ifndefTIMER_H#defineTIMER_H#include<chrono>enumclassType{......
  • 手撕AVL树(C++)
    阅读本文前,请确保您已经了解了二叉搜索树的相关内容(如定义、增删查改的方法以及效率等)。否则,建议您先学习二叉搜索树。本文假定您对二叉搜索树有了足够的了解。效率?众所......
  • 数组描述线性表(C++实现)
    线性表也称有序表,其每一个实例都是元素的一个有序集合抽象类linearList一个抽象类包含没有实现代码的成员函数,这样的成员函数称为纯虚函数,用数字0作为初始值来说明templ......
  • C++_运算符重载
    operatoroverloadingCustomizestheC++operatorsforoperandsofuser-definedtypes.std::addressofstd::addressof模板函数定义在<memory>头文件中,用于获取类或......
  • 怎么在C++中调用Python?C++调用python封装接口实例解析!
    看到标题很多小伙伴会问:不是都说python是胶水语言,他调用什么什么语言封装的库来做一些什么事情吗?怎么小编你这反而变成被调用的对象了呢?没错,常规情况下一般都是以python语......
  • Python实例浅谈之三Python与C/C++相互调用
    一、问题     Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结。二、Python调用C/C++1、Python调用C动态链接库       P......
  • C++_语言概览和资料
    C++C语言1969年-1973年完成,其出发点是为了编写Unix操作系统设计目标需求、背景和待解决问题 演化过程中,来自用户的反馈和语言实现者们积累的经验设计哲学:高效......