1. 题目描述
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
2. 思路
递归+逻辑运算符的短路效应。
逻辑运算符的短路效应:
A && B // 若 A 为 false ,则 B 的判断不会执行(即短路),直接判定 A && B 为 false
A || B // 若 A 为 true ,则 B 的判断不会执行(即短路),直接判定 A || B 为 true
3. 代码
class Solution {
int res = 0;
public int sumNums(int n) {
//由于格式问题,需要用boolean变量来接收表达式的结果
//boolean x = (n > 1) && sumNums(n-1) > 0;
boolean x = (n <= 1) || sumNums(n-1) > 0;//逻辑运算符的短路效应
res += n;
return res;
}
}