求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
1.递归法
运用逻辑运算符的短路效应,n > 1 && sumNums(n - 1) // 当 n = 1 时 n > 1 不成立 ,此时 “短路” ,终止后续递归
boolean flag=n>0&&(n+=sumNums(n-1))>0;
2.利用捕获异常
1.先做一个递归从n加到0
2.在0的时候捕获异常:利用分母不能为0
try {
int a=1/n;
n+=sumNums(n-1);
}catch(ArithmeticException ex) {
return 0;
}
return n;
}