【发布时间】:2022-01-07 12:36:24
【问题描述】:
出于培训目的,我尝试编写一个程序来计算给定数字在给定整数数组中出现的频率。然后检查数字是偶数还是奇数。不使用任何导入或循环。我试图以递归方式解决它。 例如:
(3, new int[]{3,3,4,5,3,3,2,1})
有 4 个三,所以程序应该检查 4 是偶数还是奇数。
经过几天的编码和不工作的代码,我决定在这里问: 有什么解决方案吗?
public static int evenNumberOf(int num, int[] numarr) {
int i = 0 ;
int counter = 0;
if(a == null || a.length == 0) {
return false;
} else {
if(a[i] == a.length -1 ) {
if(counter % 2 == 0) {
System.out.println("true");
return true;
} else System.out.println("false");
return false;
} else {
if(a[i] == n) {
counter++;
i++;
return evenNumberOf(n,a) ;
} else {
i++;
return evenNumberOf(n,a) ;
【问题讨论】:
-
您能否分享您编写的代码,以便我们尝试帮助您找出问题所在?
-
对不起,我会这么做的!
-
请发布您的完整代码。
a和n在哪里声明?当你的函数说它返回int时,你如何返回true? “不工作”是什么意思?但是您的问题似乎是每次调用函数时都从数组的开头开始搜索。 -
你怎么能在一个应该返回 int 的方法中
return false或return true?
标签: java if-statement recursion