【头歌】函数的递归调用

您所在的位置:网站首页 python编写一个函数计算n的阶乘 【头歌】函数的递归调用

【头歌】函数的递归调用

#【头歌】函数的递归调用| 来源: 网络整理| 查看: 265

第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