java中的递归方法是怎么样的?请举例解析一下
3个回答
展开全部
public int sum(int number){
if(number == 1){
return 1;
}else{
return number+ sum(number-1);
}
}
---------------------------------------
这个就是最简单的递归调用求和:以此类推既可以。
例如:
sum(4);
4 + sum(3);
-----3 + sum(2)
----------2 + sum(1);
---------------1;
if(number == 1){
return 1;
}else{
return number+ sum(number-1);
}
}
---------------------------------------
这个就是最简单的递归调用求和:以此类推既可以。
例如:
sum(4);
4 + sum(3);
-----3 + sum(2)
----------2 + sum(1);
---------------1;
追问
可以解析一下吗,我是新手,看不懂
展开全部
public class JieCheng {
public static void main(String[] args){
System.out.println(JieCheng.digui(31));
}
public static long digui(int n){
if(n <= 1) return 1;
else return digui(n-1)*n;
}
}
阶乘的递归实现
public static void main(String[] args){
System.out.println(JieCheng.digui(31));
}
public static long digui(int n){
if(n <= 1) return 1;
else return digui(n-1)*n;
}
}
阶乘的递归实现
追问
你不要给我一个答案,我需要解析。我是新手,看不懂啊
追答
其实你写出阶乘的公式你就知道递归是怎么写的了。
digui这个函数进去就会进行1中的判断
1、当X = 1时,阶乘 = 1
否则就会将X减一作为参数进行下一步递归,一直到X = 1 为止,就会得到2中的式子。
2、阶乘 = X * ( X - 1 ) * ( X - 2 ) * ( X - 3 ) * …… * 1
这时程序会自底向上,也就是从1开始向上返回值,也就是:
digui(1) = 1
digui(2) = 2 * digui(1) = 2 * 1 = 2
digui(3) = 3 * digui(2) = 3 * 2 = 6
……
digui(n) = n * digui(n-1)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你连他们举的例子都看不懂,就不要想什么递归了,先搞懂基本语法,别人不可能给你一个单词一个单词解释。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询