递归的怎么写

1. 如何写递归函数

递归函数,是指某一函数内部自己直接或间接地调用自己,即直接递归和间接递归。是语言中比较高级的技术用法。

递归函数之所以难,是因为是一种过于抽象化的技术

写代码的时候无法直观的看出逻辑是否符合自己要求,因此想一次性写好递归函数,是一件很困难的事情,必须要程序运作起来执行递归函数的代码才能看出是否正确,而且进行测试的难度也很高,有时的隐含bug可能要软件上线后才会渐渐体现出来。

首先,

要分析清楚满足递归的条件,并一一列出。

其次,

要分析不满足条件时的处理方式。

在列出了所有条件后,我们自然还要考虑不满足条件后的结果,一种是业务本身要求的不满足条件后的处理,另一种就是出现错误时候的处理。说的简单点,就是正确的情景考虑到了后还要考虑错误的情景。

接下来,

要分析递归函数的返回值。

最后,

写完递归函数后一定要进行单元测试,测试也要有方法。

因此难以保障一次写完后正确性,所以写完后一定要测试,递归函数本身测试也很麻烦,递归次数少倒还好,递归次数一旦多的话就很头疼。这时我们可以将循环的次数,以及递归的后的结果打印出来,看看打印后的结果是否符合自己的预期,如果某一递归出现问题,可以根据循环次数的记录在调试的时候直接定位,这样效率会高很多,也容易很多,要不然一步步调试看,实在是折磨人。测试的时候一定要涉及到所有满足递归的条件,每一条件分支都要检查一遍,这样才是较为全面的测试递归的方法。

写递归函数,不是一下两下能搞定的事情,本身就是一个反复性工作,编写→测试→编写→测试→。,所以在分析、编写的时候一定要静心、细心,不要急躁,这样渐渐的递归函数也就健全起来。头几次写递归函数可能写不好,日后多多练习便会慢慢深刻体会到递归的精髓。

那么我想说的也说完了,希望这篇文章能对大家有帮助。

2. 递归程序如何写,要满足三个条件,切记

以 C 语言为例,举一个最最经典的例子就是:计算一个整数的阶乘。

#include

int my_jiecheng( int ) ; /* 计算阶乘子函数原型说明 */

int main( )

{

int num, result = 0 ;

scanf("%d", &num) ; /* 从键盘输入一个整数 num */

result = my_jiecheng(num) ; /* 调用计算阶乘子函数 my_jeicheng( ),并将最终的结果保存在 result 变量中 */

printf("result = %d\n", result ) ; /* 输出最后的计算结果 */

return 0 ;

}

int my_jiecheng( n )

{

if( n == 1 ) /* 定义: 1!== 1,即:1 的阶乘等于 1 */

return (1) ; /* n == 1,返回 1 */

else /* 递归调用 my_jiecheng( ) 子函数 */

return( n * my_jiecheng(n-1) ) ; /* 否则的话,n != 1,递归调用 n*(n-1) ! */

}

3. 用c语言的递归怎么来写选择排序

选择排序的递归算法

#include

select(int a[8],int m,int n)

{

int i,t,k;

k=m;

for(i=m+1;iif(a[k]>a[i])

k=i;

if(k!=m)

{

t=a[k];

a[k]=a[m];

a[m]=t;

}

if(mselect(a,m+1,n);

}

main()

{

int a[10]={46,55,13,42,94,17,05,70};

int i;

select(a,0,8);

for(i=0;iprintf("%4d",a[i]);

printf("\n");

}

转载请注明出处育才学习网 » 递归的怎么写

知识

趴下了怎么写

阅读(170)

本文主要为您介绍趴下了怎么写,内容包括我快累死了趴下了可还得写作业怎么让自己清醒谢谢,"趴下"如何翻译,趴下怎么造句。get down;drop1.The drill sergeant took the men on a ten-mile march a

知识

怎么写制作

阅读(139)

本文主要为您介绍怎么写制作,内容包括制作过程怎么写,怎么写制作风筝的过程,小制作的作文怎么写。我从小就喜欢做手工,因此,我的房间贴满了什么纸鹤呀、小船、新年卡、圣诞卡、装饰品,它们全是我亲手做的。 有一次,妈妈的单位发了一箱可乐,

知识

撤退怎么写啊

阅读(207)

本文主要为您介绍撤退怎么写啊,内容包括用“撤退”写5个句子可以是撤退的引申义撤退的好处怎样撤退等等,写一篇作文:题目是:有一种成功叫撤退,qq写出对话想撤回,怎么撤退,写错。无论父母对孩子的爱,还是老师对学生的爱,过多的保护伞会让爱变得

知识

写名称怎么写

阅读(130)

本文主要为您介绍写名称怎么写,内容包括怎样写好自己的名字,书信格式中称呼怎么写,正文呢,祝福语呢,还有署名,日期哦.,称呼怎么写。中文书信标准格式 ①称呼:顶格,有的还可以加上一定的限定、修饰词,如亲爱的等.②问候语:如写“你好”、“近来

知识

观怎么写啊

阅读(247)

本文主要为您介绍观怎么写啊,内容包括观后感怎么写啊,“观”的古字写法,观后感怎么写啊。:①让学生思考“我”看了一部什么电影(书籍)?②电影(书籍)的主要内容是什么?③看后有什么感想?④想好新颖的题目和重点。⑤按思路顺序列题

知识

侠爱怎么写

阅读(157)

本文主要为您介绍侠爱怎么写,内容包括懂作诗押韵者进请以高中侠爱叶美君七个字,写首藏头诗,七字一句,,侠字怎么写好看,怎么写首最佳的藏头诗《侠英我爱你》。“侠”的繁体字为:侠

知识

结线条怎么写

阅读(133)

本文主要为您介绍结线条怎么写,内容包括打月结表格中间的线条怎么弄,怎样画好线条,语文作业本线条的怎么写字。练习线条是很枯燥的,但是没办法,那些老动画也是一笔一笔的练出来的。描线时尤其是描长线条时你要盯着这一笔结束的位置。而不是盯

知识

爆火怎么写

阅读(159)

本文主要为您介绍爆火怎么写,内容包括爆这个字怎么写,怎么打出这个火字,“火”字究竟该怎么写。火字正确的写法为:丶、ノ、ノ、丶,如下图:

知识

资纳金怎么写

阅读(156)

本文主要为您介绍资纳金怎么写,内容包括滞纳金的会计分录怎么写,怎么写免滞纳金申请书,资纳金是什么意思。物业减免滞纳金申请书申请人申请时间欠的滞纳金情况 (金额,欠多久,什么时候开始欠的,) 欠款理由 (写因特殊情况(如失业、得病或其他事项

知识

盛房产怎么写

阅读(146)

本文主要为您介绍盛房产怎么写,内容包括房产证明信该怎么写,房产证明怎么写呢,元盛房产怎么样。产权登记 房产证明简单来说就是能够证明房产归属的一个证明,要办理房产证,首先就要开放商确权,当房屋在竣工验收合格之后,三十天内必须办理确

知识

老写袁怎么写

阅读(205)

本文主要为您介绍老写袁怎么写,内容包括袁字老写怎么写啊,袁的老体子怎么写,老写的远字怎么写。自题渔舟写真二首【背景介绍】要了解一首诗,还是先了解一下写作背景吧。袁世凯就不用多做介绍了。现在网上有流行说法是这诗是袁世凯在1895年

知识

厂字音怎么写

阅读(213)

本文主要为您介绍厂字音怎么写,内容包括"厂"字的拼音怎么拼,厂字拼音什么写,求个字音读mu是厂里面不知道怎么写。厂 ān,chǎng, 厄 ě, 历 lì, 厅 tīng, 厃 wēi, 厉 lì, 厈 hàn, 厇 zhé, 厍 shè, 6 压

知识

设圈套怎么写

阅读(210)

本文主要为您介绍设圈套怎么写,内容包括怎么设圈套,上海话设圈套怎么说的,说话写作时在语言文字上设圈套,文什么游什么。嗯,你可以观察你女朋友的行动。还可以偷偷看你女朋友的手机里给谁发的信息和给谁打的电话。还有,设圈套的话,离谱点的话,

知识

特别处怎么写

阅读(180)

本文主要为您介绍特别处怎么写,内容包括作文《特别的出行》该怎么写,作文怎样写才有特别之处,特长怎么写啊。特别的出行秋雨一直轻轻的飘,饱含着泪与血的交融。他走在看不见尽头的道路上,绵延着枯草般的寂寞和惆怅。临行时的那些场景牢牢地锁

知识

怎么写递归

阅读(183)

本文主要为您介绍怎么写递归,内容包括如何写递归函数,如何写递归函数,怎样写递归程序亚。递归函数,是指某一函数内部自己直接或间接地调用自己,即直接递归和间接递归。是语言中比较高级的技术用法。递归函数之所以难,是因为是一种过于

知识

递归怎么写

阅读(157)

本文主要为您介绍递归怎么写,内容包括如何写递归函数,这段程序用递归怎么写,怎样写递归程序亚。递归函数,是指某一函数内部自己直接或间接地调用自己,即直接递归和间接递归。是语言中比较高级的技术用法。递归函数之所以难,是因为是一种过于

知识

什么是递归数列

阅读(173)

递归数列:一种给定A1后,用给定递归公式An+1=f(An)由前项定义后项所得到的数列。数列是以正整数集(或它的有限子集)为定义域的函数,是一列有序的数。数列中的每一个数都叫做这个数列的项。排在第一位的数称为这个数列的第1项(通常也叫做首项),排

知识

什么是递归

阅读(263)

递归在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调

[/e:loop]