package cn.ourpass.recurse;
/**
* 递归学习
* @author simple
*
*/
public class RecurseTest {
public static void main(String[] args) {
int total = recurseAdd(20);
System.out.println(total);
int total2 = tailRecurseAdd(0, 20);
System.out.println(total2);
}
/**
* 递归计算正整数和
* @param num
* @return
*/
public static int recurseAdd(int num) {
if(num == 1) {
return 1;
} else {
return num + recurseAdd(num -1);
}
}
/**
* 尾递归计算正整数和
* @param total
* @param num
* @return
*/
public static int tailRecurseAdd(int total, int num) {
if(num == 1) {
return total + 1;
} else {
return tailRecurseAdd(total + num, num - 1);
}
}
}