我必须使用递归找到不被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/