交互递归:
到目前为止,看到的递归函数都是直接调用自己。虽然大多数的递归函数都符合这一形式,但其实递归的定义更为广泛,如果某个函数被细分成了几个子函数,那么可以在更深的嵌套层次上应用递归调用。例如:如果函数 f 调用函数 g ,而函数 g 反过来又调用函数 f ,这些函数的调用仍然被看作是递归。这种类型的递归被成为交互递归。
首先,先看奇数和偶数的描述:
- 如果一个数的前一个数是奇数,那么该数是偶数
- 一个树不是偶数就是奇数
- 定义0是偶数
public class OddOrEven {
public static boolean isOdd(int n){
return !isEven(n);
}
public static boolean isEven(int n){
if(n == 0){
return true;
}else{
return isOdd(n-1);
}
}
public static void main(String[] args){
System.out.println(isOdd(4));
System.out.println(isEven(6));
}
}