題目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。
解析思路
這題牛客評論區的大佬解的太厲害了。
利用 && 運算符,當前半部分爲假時,則不對後半部分再次進行運算的特點,作爲了遞歸終止的條件。
當運行到n一次次減1到左後到0時,到達左邊的判斷,遞歸結束。
運行代碼
public class Solution {
public int Sum_Solution(int n) {
int sum = n;
boolean ans = (n > 0)&&((sum += Sum_Solution(n-1)) > 0);
return sum;
}
}