1. 程式人生 > >46、求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。

46、求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。

closed else while spl 判斷語句 stat 條件 執行 ret

思路:循環或者遞歸都有個結束條件和執行條件。用&&短路與代替。

//短路與&&;就是只有前一個條件滿足才可以去判斷第二個條件。
//遞歸的出口就是n=0時,當n>0是每次都會執行&&之後的表達式sum += Sum_Solution(n-1);

技術分享
public class Solution {
    static int sum = 0;  
    public int Sum_Solution(int n) {
        //短路與&&;就是只有前一個條件滿足才可以去判斷第二個條件。
        //遞歸的出口就是n=0時,當n>0是每次都會執行&&之後的表達式sum += Sum_Solution(n-1);
int sum = n; boolean s = ((n > 0) && ((sum += Sum_Solution(n-1))>0)); return sum; } }
View Code

測試:功能測試5;邊界值測試0和1

46、求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。