我必须使用递归找到不被7整除的所有偶数之和。我尝试了这段代码,但似乎在某处出错,因为它返回0:

public static void main(String[] args) {

System.out.println(specialSum(50));
}
public static int specialSum(int a) {

    if ((a >= 1) && ((specialSum(a-1))%7 !=0)) {
        return a + specialSum(a -1);
    } else{
        return 0;
    }

    }
}

最佳答案

在这里,您在一行中找到了解决方案,应该有一个案例来停止递归,在这种情况下,您要在49处停止递归,因为它可以被7整除,并且您不考虑小于49的数字

main()
{
    specialSum(50, 7);
}

 public static int specialSum(int a, int toDivide)
 {
    return (a == 0) ? 0 : (a >= 1 && a%2 == 0 && a%7 != 0) ? a + specialSum(a - 1, toDivide) : specialSum(a - 1, toDivide);
 }

关于java - Java递归总和不能被特定数字整除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36841103/

10-10 08:46