递归算法的数据结构和算法 C++和PHP达到
2023-09-14 09:10:15 时间
递归算法:它是一种间接的方法调用本身,直接或。
实施过程:按功能或子程序完成。在函数编写代码或子程序直接或间接拥有被称为。你可以完成递归。
(相同类型的问题,子问题到最小问题有已知条件,然后来求解,然后得到结果逐级返回。
事实上也是一种循环。
)
最主要体现:小的代码量攻克了很复杂的问题
特点:
1、递归就是方法里调用自身
2、必须有一个明白的递归结束条件。称为递归出口。
3、简洁可是执行效率较低,一般不提倡使用
4、每一层的返回点、局部变量等开辟了栈来存储,递归次数过多easy造成栈溢出。
实例1:求阶乘
C++代码:
#include<iostream> int factorial(int n); int main() { using namespace std; int n; cout << "请输入一个数字:"; cin >> n; cout << n << "的阶乘为: " << factorial(n) <<endl; return 0; } int factorial(int n) { if (n == 1) return 1; return n*factorial(n-1); }
执行结果:
实例2:数制转换
代码:
#include<iostream> #include<cstring> void feelTheBase(char *s, int n, int sys); int main() { using namespace std; char s[60]; int n,sys; cout << "请输入一个整数:"; cin >> n; cout << "请输入要转换的进制类型(2,8,16):"; cin >> sys; feelTheBase(s, n, sys); cout << n << "转换成" << sys << "进制结果为: " << s <<endl; return 0; } void feelTheBase(char *s, int n, int sys) { char bit[] = {"0123456789ABCDEF"}; int len; if (n == 0) { strcpy(s, ""); return; } feelTheBase(s, n/sys, sys); len = strlen(s); s[len] = bit[n%sys]; s[len+1] = '\0'; }
执行结果:
实例3:列出某个文件夹下全部的子文件夹和文件(还能够用scandir函数更方便)
PHP实现代码:
<?php function rec($dir, $lev=0){ $dh = opendir($dir); while (($file = readdir($dh)) != false) { if ($file == '.' || $file == '..') { continue; } if (is_dir($dir.'/'.$file)){ $arr = explode("/",$dir.'/'.$file); $lev = count($arr)-3; echo str_pad('',$lev, "--")."文件夹".$file."<br/>"; rec($dir.'/'.$file, $lev+1); }else { echo str_pad('',$lev, "--").$file."<br/>"; } } closedir($dh); } $dir = "./"; rec($dir); ?>
执行结果:
版权声明:本文博主原创文章,博客,未经同意不得转载。
相关文章
- PHP常见面试题_php算法面试题及答案
- c++ CreateThread
- VsCode配置c/c++环境
- C++ Primer Plus习题及答案-第四章
- C++数组搜索(二分法)
- C++静态类成员
- php getrealpath,PHP SplFileInfo getRealPath()用法及代码示例「建议收藏」
- PHP 浏览器缓存_php缓存引擎
- PHP DFA算法实现敏感词过滤包 php-dfa-sensitive
- C/C++ 反汇编:数据类型与常量
- C/C++ Qt 编译打包项目
- C++ STL 标准模板库(非变易/变易)算法
- C/C++中const char*、char const*、char * const三者的区别
- Linux老是提示compat-libstdc++ is not installed的原因详解程序员
- PHP连接MySQL数据库指南(php连接到mysql)
- C++关联容器,STL关联容器
- C++11 weak_ptr智能指针(一看即懂)
- 借助 PHP 与 MySQL 轻松实现文件下载(php和mysql下载)
- PHP搭建Redis环境指南(php配置redis)
- 深入理解MySQL转义在PHP中的应用技巧(mysql转义php)
- 使用PHP编辑器轻松编写Linux平台代码(php编辑器linux)
- 解决PHP读取MSSQL数据库乱码问题(php读mssql乱码)
- 用微信、PHP和MySQL构建快速、可靠的网站(微信 php mysql)
- 用PHP进行MySQL功能测试(php 测试mysql)
- PHP得到某段时间区间的时间戳php定时任务
- php数据结构与算法(PHP描述)查找与二分法查找
- C++中队列的建立与操作详细解析