程式化的递归函数

来源:互联网 发布:风云同步卧底软件 编辑:程序博客网 时间:2024/05/16 01:37
程式化的递归函数有2个特点:
1.有函数参数,利用参数作为终止条件。
2.有返回值,在return语句里写递推公式。

正确写出
如何快速正确的写出递归函数?写一个递归函数是非常程式化的东西,只要按照一定的规则来写,就可以很容易地写出递归函数。写递归函数有三步:
①写出迭代公式;
②确定递归终止条件;
③将①②翻译成代码。
下面举一个例子,希望能帮助大家体会这一原则
写一个函数,求:f(n)=1+2+3+……+n的值
①写出迭代公式:迭代公式为
②确定递归终止条件:f(1)=1就是递归终止条件
③将①②翻译成代码:将迭代公式等号右边的式子写入return语句中,即return (Sum(n-1))+n;
将1!=1翻译成判断语句:if(n==1) return 1;
按照先测试,后递归的原则写出代码。


longSum(intn)
{
if(n==1)
return1;
return(Sum(n-1))+n;
}




阶乘的递归函数,公式如下:n!=n*(n-1)*(n-2)....*2*1


//C++
int Factorial(int n)
{
if(n==0||n==1)
return 1;
else
return n * Factorial(n-1)
}


总结:
   写递归函数关键只有两点:
   1、递推公式。它是有固定模板的的一个公式:f(n)=f(n-1)+n.把f换成递归函数的函数名即可。如前面例子中的
    Sum(n)=(Sum(n-1))+n,Factorial(n)=n * Factorial(n-1)。
 
   2.递推公式要写在return语句里。
    
     因为如果你比较了解递归函数,就会知道递归函数的执行过程,是一个递归下降,遇到终止条件后,递归上升的过程。
在递归下降过程中,执行的是包括return在内的前面的语句,但执行return语句实际上并没有返回结果。
遇到终止条件执行第一次返回结果
在递归上升的过程中,执行的是return语句。
所以如果递推公式不写在return语句里,就无法递归。

    3.终止条件的判断语句要写在递推公式的前面。
即不能写成
longSum(intn)
{
if(n!=1)
return(Sum(n-1))+n;
else
return1;

}














0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 魅族note6已锁定怎么办 淘宝买东西降价了怎么办 加盟保证金不退怎么办 支付宝两个账号怎么办 微店被投诉售假怎么办 微店屏蔽搜索怎么办 在单位辞职保险怎么办 换奶粉期间拉稀怎么办 小孩换奶粉拉肚子怎么办 换奶粉没有过渡怎么办 婴儿换奶粉腹泻怎么办 胎心率超过160怎么办 孕妇饮奶粉上火怎么办 孕妇奶粉上火的怎么办 喝孕妇奶粉上火怎么办 血糖仪开不了机怎么办 小安素太甜孩子不喜欢喝怎么办 宝宝吃山药过敏怎么办 雅培奶粉上火怎么办 奶粉引起的湿疹怎么办 换奶粉宝宝不吃怎么办 宝宝上吐下泻不吃东西怎么办 hm少衣服了怎么办 手机店生意差怎么办 房子装修不交工怎么办 m651cy手机很卡怎么办 荣耀10掉电严重怎么办 华为手机掉电快怎么办 联想拯救者进水怎么办 手机充电充不满怎么办 一体手机鼓包了怎么办 蔻驰的会员怎么办 淘宝网不退款怎么办 淘宝商家欺诈消费者怎么办 淘宝没货了怎么办 天猫店价格欺骗客户怎么办 天猫欺诈消费者怎么办 空调换热器分流不均怎么办 淘宝买家已拍下卖家缺货怎么办 校园网连接不上怎么办 手机侧边裂开了怎么办