递归怎么写

1. 如何写递归函数

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

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

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

首先,

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

其次,

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

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

接下来,

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

最后,

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

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

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

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

2. C# 编程题,请问这个算法用递归怎么写

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Text.RegularExpressions;

namespace ConsoleApplication1

{

class Program

{

public static int count =1;

static void Main(string[] args)

{

string str = Console.ReadLine();

if (Regex.IsMatch(str, @"^\d+$"))

{

Build(2 * int.Parse(str));

Console.WriteLine(count);

}

Console.ReadKey();

}

private static void Build(int _year)

{

for (int i = 0; i < (_year < 12 ? _year : 12); i++)

{

if (i == 0 || i == 1)

{

}

else if (i == 11)

{

count--;

}

else if (i == 10)

{ }

else

{

count++;

Build(_year - i);

}

}

}

}

}

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");

}

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

知识

唐字怎么写

阅读(293)

本文主要为您介绍唐字怎么写,内容包括唐字怎么写好看,草书的“唐”字怎么写,繁体的唐字怎么写。“唐”字的草书写法如下:

知识

怎么写小草

阅读(169)

本文主要为您介绍怎么写小草,内容包括怎样写小草啊,描写小草的段落,怎样写小草作文。人们都说,小草非常弱小。是啊,它的确是很不起眼,又柔弱又矮小。它没有五彩缤纷的鲜花那样娇嫩醒目,惹人喜爱;也没有参天大树那样的魁伟身躯,

知识

推广怎么写

阅读(161)

本文主要为您介绍推广怎么写,内容包括珠宝品牌推广文章怎么写,推广语怎么写,推广方案怎么写。好何写好推广语?目前,运用互联网来传播信息已是惯用的营运手法了,如果有一天突然没有了互联网,那就好像人们生活中突然失去了光一样,随着网民

知识

运营模式怎么写

阅读(146)

本文主要为您介绍运营模式怎么写,内容包括商业运营模式怎么写,求大神,怎么写企业运营模式,一个公司的商业运营模式怎么写。当今大多数企业的内部运营模式都具有相近的特点,不论是国营还是私企或是合资、股份企业,其趋同性说明这种结构模式有

知识

阳怎么写

阅读(181)

本文主要为您介绍阳怎么写,内容包括古代的阳字怎么写,太阳的阳怎么写呀,阳字的大写怎么写。1)刻章时通常采用篆体2)【阳】的汉鼎繁印篆写法

知识

怎么写论文啊

阅读(178)

本文主要为您介绍怎么写论文啊,内容包括论文与作文想仔细的问一下.论文和作文有什么区别啊,到底怎样写论,怎么写论文啊,怎么写论文啊。怎样写论文:论文的写作格式、流程与写作技巧广义来说,凡属论述科学技术内容的作品,都称作科学著述,如原始论

知识

业务规划怎么写

阅读(163)

本文主要为您介绍业务规划怎么写,内容包括做业务的职业规划怎么写,做业务的职业规划怎么写,业务员工作规划怎么写。每一个职场人士在进行职业规划时,可以从以下六点开始进行思考:我的职业目标是什么?2、达成目标的几个阶段,我目前所处的阶段3、

知识

风格英文怎么写

阅读(320)

本文主要为您介绍风格英文怎么写,内容包括风格英文怎么说,风格用英语怎么写,风格的英文怎么写。风格:style ,manner,vein ,aspect ,fashion ,flavour , color例:1. Whats hi

知识

信是怎么写的

阅读(168)

本文主要为您介绍信是怎么写的,内容包括信是怎么写的,信格式怎么写,看过孩子给父母的一封信后怎样写感受可以简单说一下应怎样写吗。(1)称呼 写一封信,先要把收信人的称呼顶格写在第一行,然后,再在后面加上冒号,表示下面有话要说。 (2)问候语

知识

酬怎么写

阅读(221)

本文主要为您介绍酬怎么写,内容包括酬繁体字怎么写,稿酬的酬怎么写,酬繁体字怎么写。酬繁体

知识

新闻通稿怎么写

阅读(161)

本文主要为您介绍新闻通稿怎么写,内容包括新闻通稿要怎么写,新闻通稿怎么写,新闻通稿怎么写。要想写好新闻通稿,其实不是什么难事,但凡做过宣传或传播职业的人,大致都能说出所以然来。那么如何写好新闻通稿呢?一:搞清楚什么是新闻通稿

知识

测试代码怎么写

阅读(157)

本文主要为您介绍测试代码怎么写,内容包括怎么写Java测试代码,单元测试的代码如何编写呢,什么是测试代码。可以用main函数和JUnit来写测试代码。main是最早使用的,但是现在更流行的测试工具是JUnit。JUnit是一个Java语言的单

知识

申请离职怎么写

阅读(153)

本文主要为您介绍申请离职怎么写,内容包括。如果用人单位没有侵犯你的合法权益,可以写点主客观理由。如果用人单位侵犯了你的合法权益,可以写明。递交解除劳动合同的通知后,批不批无所谓,

知识

过渡句怎么写

阅读(548)

本文主要为您介绍过渡句怎么写,内容包括过渡句怎么写,过渡句怎么写,过渡句怎么写。过渡句 总结上文,引出下文,承上启下 当文章分段时,过渡句通常归下不归上,与下面的一段一起什么是过渡句 文章中用一定词句和段落,提示前后

知识

什么是递归数列

阅读(174)

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

知识

什么是递归

阅读(263)

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

[/e:loop]