问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

递归算法到底是什么意思?有高手能用一个简单点的代码演示一下么?

发布网友 发布时间:2022-05-12 07:34

我来回答

1个回答

热心网友 时间:2024-02-19 18:12

递归
在我看来起就是就循环的高级使用
看这道题目 求自然数N的阶乘 (N的阶乘= 1*2*3*。。。。*N)
一般程序员可能会马上这样写
public int jiecheng(int n)
{
int rs=1,i=1;
for(i=1;i<=n,i++)
{
rs*=i;
}
return rs;
}
其实简单的功能已经实现了,但是高手或者说熟悉递归的人会这样写
public int jiecheng(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*jiecheng(n-1);
}
}
到这里你可以对比这两种写法,显然第二种更简练!

好了到这里再说说递归的概念
函数之间的调用 称为主调函数和被调函数 递归恰恰属于特殊的一个
即自己调用自己

其实上面两个函数都是有问题的 因为传入的参数有可能是负数
因此在开始计算之前应该对参数做个效验
if(n<=0){throw new Exception("参数不合法");} 当然在定义函数的地方要加上 throws Exception
第二隐患时当n特别大时 ,那么结果 int类型显然是存放不了的

就说这么多
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小鹏交付怎么评分 2024年5月趋乾黄道吉日 2024年5月哪天适合趋乾 2024年6月词讼黄道吉日 2024年6月哪天适合词讼 2024年8月成服黄道吉日 2024年8月哪天适合成服 2024年8月26日黄道吉日 百度识图在线识别这个人是 百度怎样识别明星是谁? 海绵城市都建什么 包钢股票前景如何 600010包钢股份这支股票我现在被套百分之六了,后市该怎么操作,适合做长 ... java 怎么判断字符串开始位置的字符 常量池中为什么会存在&quot;java&quot;这样的字符串 StringBuilder 中有startswith()函数吗 常量池中为什么会存在&quot;java&quot;这样的字符串? c语言 递归算法 福建交通事故责任事故赔偿金多少 java中如何向一个方法同时传递一个String参数和一个int参数? java中boolean startsWith如何进行判断? 售楼部物业项目主管年终总结 福建省交通事故赔偿最新标准 福建省道路交通事故损害赔偿标准 java里boolean startWith(String prefix)用法 java的startswith()怎么判断首字符为字母 JAVA中startWith()的原型是String startWith(String prefix)还是boolean... 养卷毛比熊要准备哪些东西 比熊生下来半个月毛是卷的吗? 全世界占地面积最大的图书馆在哪 世界上最大的图书馆是什么 李世义教授向西安培华学院图书馆捐赠法律研究著作 图书馆的英文 c语言,求递归算法的技巧?最好有经典例子! 交通事故赔偿规则,还是分城市户口和农村户口吗 下面这段代码是递归算法吗,是与不是? 简单的递归算法 C语言背包问题递归算法 组织企业并购的种类有哪些 有谁知道企业并购的种类有哪些?利弊有哪些? 一般企业并购的种类有哪些 企业合并的分类? 张姓氏的现状2022? 《新世纪福音战士》eva结局是什么? 世界上最难写的字是哪一个字名字怎么说? 帮我想个难想到的网名 不要繁体字 EVA到底是什么意思?EVA的创造是为了什么? 欢乐喜剧人潘长江小品里的女演员是谁 三女休夫里的大夫人 澳门大学附近有什么? 一个喜剧电影,潘长江演的,头上长出驴耳朵的,不知道叫什么名字 潘长江是知名的喜剧演员,他创造的经典角色都能让人捧腹大笑吗? 潘长江电影有哪些