【经典算法实现 2】递归
发布日期:2021-06-29 14:52:31 浏览次数:2 分类:技术文章

本文共 594 字,大约阅读时间需要 1 分钟。

一、 递归

由于递归函数调用自己,因此编写这样的函数时很容易出错,进而导致无限循环。

由此,编写递归函数时,必须告诉它何时停止递归。

每个递归函数都有两部分:

基线条件(base case)和递归条件(recursive case)。

递归条件指的是函数调用自己,而基线条件则指的是函数不再调用自己,从而避免形成无限循环。

其格式为:

// 举例一,使用递归正序或逆序打序void func(i){
printf(" i=%d ",i); // 逆序打印,如果输入0,则打印 10,9,8,7,6,5,4,3,2,1 if( i<= 1){
// 基线条件,决定函数何时退出 return; }else{
// 递归条件,决定函数何时调用自身 i = i-1; func(i); printf(" i=%d ",i); // 逆序打印,如果输入0,则打印 1,2,3,4,5,6,7,8,9,10 }}
// 举例二,递归计算一个数的阶乘int func(i){
if( i== 1){
// 基线条件,决定函数何时退出 return; }else{
// 递归条件,决定函数何时调用自身 return i * func(i-1); // 输入5, 输出 5 * 4 * 3 * 2 * 1 }}

转载地址:https://ciellee.blog.csdn.net/article/details/107244894 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:进程同步机制(软件同步,硬件同步,信号量,管程)
下一篇:【经典算法实现 1】选择排序法 O(n^2)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月23日 05时02分54秒