【头歌】函数的递归调用 |
您所在的位置:网站首页 › python编写一个函数计算n的阶乘 › 【头歌】函数的递归调用 |
第1关:编写递归函数方法求x的n次方 (要求n>=0)
任务描述
本关任务:编写递归函数方法求x的n次方 (要求n>=0)。 相关知识 递归法在定义一个过程或函数时出现调用本过程或本函数的成分,称之为递归。 若调用自身,称之为直接递归。若过程或函数p调用过程或函数q,而q又调用p,称之为间接递归。 下面主要介绍直接递归。 一般地,递归模型由两部分组成,一部分为递归出口,它给出了递归的终止条件。另一部分为递归体,它确定递归求解时的递推关系。 例如:计算n阶乘的程序在数学上可以定义为: ![]() 则递归算法求n阶乘的伪代码为: int fact(int n) { if(n == 0) return 1; else return n * fact(n - 1); }上面例子中的f(0)=1就是递归出口; f(n)=n*f(n-1)就是递归体。 要注意一下两点: 递归调用的次数必须是有限的。 必须有结束递归的条件来终止递归。 递归算法求解过程的特征: 先将不能直接求解的问题转换成若干个相似的小问题,通过分别求解各子问题,最后获得整个问题的解。 当这些子问题不能直接求解时,还可以再将它们转换成若干个更小的子问题,如此反复进行,直到遇到递归出口为止。 这种自上而下将问题分解、求解,再自上而下引用、合并,求出最后解答的过程称为递归求解过程。这是一种分而治之的算法设计方法。 求x的n次方的求解过程可以写出递归定义: ![]() 根据提示,在右侧编辑器补充代码。 测试说明平台会对你编写的代码进行测试: 测试输入: 2.3,5 预期输出: 64.363430 测试输入: 2.3,-5 预期输出: nn; b = add(n); cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |