递归函数应有递归结束的条件(2020年计算机等级VB语言核心知识点:递归过程)

本文目录
2020年计算机等级VB语言核心知识点:递归过程
【 #计算机等级# 导语】2020年计算机等级考试已经延期,目前这个阶段教材应该看完一遍,大家该强化一下自己对于教材考点的记忆,及时查漏补缺。下面 为您实时更新的内容。
2020年计算机等级VB语言核心知识点:递归过程
1.递归的概念
通俗的讲,用自身的结构来描述自身就称为“递归”。如对阶乘运算的定义就是递归的:
n!=n(n-1)!(n-1)!=(n-1)(n-2)!
2.递归子过程和递归函数
VB允许一个自定义子过程或函数过程在过程体的内部调用自己,这样的子过程或函数就叫递归子过程和递归函数。递归过程包含了递推和回归两个过程。构成递归的条件是:
(1)递归结束条件和结束时的值
(2)能用递归形式表示,并且递归向结束条件发展。
例:编制程序求fac(n)=n!的函数
3.注意事项
(1)递归算法设计简单,但消耗的上机时间和占据的内存空间比非递归大
(2)设计一个正确的递归过程或函数过程必须具备两点:
1)具备递归条件;
2)具备递归结束条件
(3)一般而言,递归函数过程对于计算阶乘、级数、指数运算有特殊效果。
有没有人知道函数的递归调用
其实递归并不难,我刚学时也是一头雾水,后来弄明白了其实很简单,函数的递归调用就是在调用一个函数的过程中又出现直接或间接地调用该函数本身。帮你找了点资料,希望对你有用 o(∩_∩)o...
函数的递归调用是C语言的一个主要特点。
1、在调用函数f的过程中,又要调用f函数,这是直接递归调用本函数;
在调用函数f1的过程中要调用函数f2,而在调用f2函数过程中又要调用f1函数,这就是函数的间接递归调用。
2.递归过程必须解决两个问题
递归计算的公式
递归结束的条件
3.递归过程的算法描述:
if (递归结束条件)
return (递归结束条件下的返回值);
else
return (递归计算公式);
4.递归调用函数的调用方法和一般函数的调用方法完全相同
【例1】编写一个计算n!(n》1)的递归调用函数
main()
{long fact(int n);
int n;
printf(“\nPlease enter n:”);
scanf(“%d”,&n);
printf(“\n n!=%ld”,fact(n));
}
long fact(int n);
{if (n《1)
{ printf (“input error!\n”);
return(-1); }
else
if (n= =1) return (1);
else return (n*fact(n-1));
}
程序执行过程:分2个阶段
Ø递归过程:将原始问题不断转化为规模小了一级的问题,从未知向已知推进,最终达到递归的结束条件;
Ø回溯过程:从已知条件出发,沿递归的逆过程逐一求值返回,直至递归初始处,完成递归调用(如图)。

本文相关文章:
lambda表达式什么意思(lambda表达式的演化过程是怎么样的最好举例说明)
2026年9月3日 18:00
ecosystem快速记忆(分析生态系统的研究过程包括:-------,--------,-----------)
2026年7月11日 06:50
页面设计的重要性(“界面设计”在整个产品设计过程中的重要性如何)
2026年7月3日 14:00
更多文章:
blast premier春季赛(csgo战队vitality有谁)
2026年9月7日 21:50
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00



