3 回答

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
它返回0一個(gè)空數(shù)組和1一個(gè)非空數(shù)組。您看到的結(jié)果來自index,而不是count您期望的結(jié)果。
我會在不涉及領(lǐng)域的情況下編寫它。
public int m(int[] nums, int index, int count) {
return index < nums.length ?
m(nums, index + 1, nums[index] == 11 ? ++count : count) :
count;
}
或(@Pshemo 在評論中建議)
public int m(int[] nums, int index) {
return index < nums.length ?
(nums[index] == 11 ? 1 : 0) + m(nums, ++index) :
0;
}

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
您返回索引。標(biāo)記您的問題:
public class Uloha06 {
public static int count = 0;
public static int array11(int[] nums, int index){
if(index<nums.length){
if(nums[index]==11)
count+=1;
index++;
array11(nums,index);
/// booom here index is 1 but you want count
//if(index<nums.length)
// return index;
}
return count;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int array11[]={11,1,2,36,11};
System.out.println(array11(array11, 0));
}

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
這應(yīng)該工作
public static int array11(int[] nums, int index){
if(index < 0){
return 0;}
else if (nums [index] == 11)
{
return (array11(nums, index-1) + 1);
}
else {
return array11(nums, index-1);
}
}
添加回答
舉報(bào)