这两天公司来了个新同事,顺便带一下,给他解释下递归。
要点:找出口,出口即调用自己直到不能调用为止,不能调用即自身方法已经return到具体值。
例:
package test;
public class Test1 {
/**
* 题目:1-n相加
* @param n
* @return
*/
public static int sum(int n){
if(n == 1){
return 1;
}
return n+sum(n-1);
}
/**
* 题目:一个球从100米高度落下,然后弹起,再落下,再弹起...每次弹起高度为上次高度的一半,求落下弹起10次后,高度和是多少?
* @param a
* @param b
* @return
*/
public static double sum1(double a,double b){
if(a == 1){
return b;
}
return b+sum1((a-1),b*1/2);
}
public static void main(String[] args) {
System.out.println(sum(10));
System.out.println(sum1(10,100));
}
}