public class Main {
private static boolean isTwice(int[] arr, int index) {
if (index == 0)
return true;
if (arr[index] == arr[index - 1] * 2)
return isTwice(arr, index - 1);
return false;
}
public static void main(String[] args) {
int[] arr = {2, 4, 8, 16, 32};
boolean result = isTwice(arr, arr.length - 1);
System.out.println(result); // 输出 true
}
}
该方法接收一个数组,使用递归实现每个元素都是前一个元素的两倍的判断。在每个递归步骤中,比较当前元素是否等于前面一个元素的两倍,如果是,则继续递归查看前面的元素是否符合条件,否则返回false。如果index等于0,则表示已经遍历完整个数组,返回true。最终在main方法中传入数组和数组最后一个元素的下标,获得结果并输出。