如何创建一个函数,该函数将整数数组和数组长度作为参数,如果数组元素的和为偶数,则返回true,否则返回false?
如何在不使用任何静态变量的情况下执行此操作?
我尝试过制作一个代码来检查当前是否为奇数,而前一个是偶数将递归返回 false,否则将递归返回 true,这个想法是基于数学公理,即只有偶数加奇数等于奇数,其他所有组合都是偶数。
public static boolean q3(int[] arr, int index) {
if (index == 0) {
return arr[index] % 2 == 0;
}
if (arr[index] % 2 == 0) {//if current is even
if (!q3(arr, index - 1)) {//even plus odd = odd
return false;
} else
return true; //every other combo equal true
} else if (q3(arr, index - 1)) {//if current is odd
return true;
} else {
return false;
}
}
这里有一个递归方法可以完成这项工作。我试着让代码可读。
这个想法是,通过加法得到偶数的唯一时间是
在每次递归调用时,我们检查将数字与前一个计算值相加是否使其为偶数或奇数。
public static boolean isSumEven(int arr[], int length){
if(length == 0){
return true;
} else {
boolean sumPreviousElemsEven = isSumEven(arr, length - 1);
boolean currentElemEven = arr[length-1]%2 == 0 ? true : false;
if(sumPreviousElemsEven && currentElemEven || !sumPreviousElemsEven && !currentElemEven){
return true;
} else {
return false;
}
}
}
我写了两个版本,一个有递归,另一个没有递归
import java.util.Arrays;
public class MyClass {
public static void main(String args[]) {
int[] arr={5, 3, 1};
System.out.println("sum of "+Arrays.toString(arr)+" is " + size_ispair_rec(arr, arr.length));
}
public static boolean size_ispair_rec(int[] arr, int size){
if(size-1 == 0){
return arr[size]%2==0;
}
return !((arr[size-1]%2 == 0) ^ size_ispair_rec(arr, size-1));
}
public static boolean size_ispair(int[] arr, int size){
int sum=0;
for(int i=0; i<size; ++i){
sum+=arr[i];
}
return sum%2 == 0 ? true : false;
}
}
为什么在这种情况下两个数组的作用不同?
我是一个新手程序员 我正在研究一个使用递归函数的问题。虽然我可以理解要点,但有一个不清楚的问题,我无法在调试过程中立即破译。感谢您对我的问题的帮助。 这个问题的概念(合并排序)非常简单,但我对递归函数的一般工作方式感到困惑。下面是我正在处理的程序(来自佐治亚理工学院关于Python的课程): 问题:当程序执行到这行时会发生什么< code > left = merge sort(lst[:midp
我接受了一次采访,被问到一个问题,我想了解解决方案。 创建一个递归函数,该函数返回给定长度的数组的可能组合数,这些数组可以由非重复连续整数数组组成。 f(数组,长度)=组合 数组=[0,1,2,3] 长度=2 组合=10(所有组合:[0,0][0,1][0,2][0,3][1,1][1,2][1,3][2,2][2,3][3,3]) 请注意,允许使用[0,0],但不允许使用[1,0],因为定义了[
问题内容: 我有一个我要为类创建的程序,该程序使用递归返回数组中所有整数的总和。到目前为止,这是我的程序: 但是,我相信我得到了三个都相关的错误,但是我不知道为什么它会找到一种null类型: 问题答案: 该解决方案比看起来简单,请尝试以下操作(假设数组的长度为非零): 这样称呼它:
我需要一些帮助在Java:我有一个函数签名,我不能改变,我的函数需要递归和返回字符串数组没有任何选项添加到签名。 这是我的签名: 该函数在TRIE结构中查找相似的单词,在它们之间有K个字母变化的差异。 例如-在单词“bike”和k=2的TRIE中,该函数将返回一个(包含nice和nine)。 我不是在寻找解决方案,只是为了一个返回字符串数组的方法。 **我用我收到的签名编写了一个函数作为包装器,但
我试图使用递归编写一个方法subsetWithSum(ArrayList numbers,int sum),该方法获取整数的ArrayList和整数的和,并返回一个ArrayList,其中包含给定数字(提供的ArrayList)中的数字,这些数字的和等于和。不必返回多个组合,如果没有这样的子集,则应返回null。但我的代码只为每个返回null`` 这是我的方法代码: 下面是我对该方法的主要调用: