1. 程式人生 > >劍指offer-47:求1+2+3+...+n

劍指offer-47:求1+2+3+...+n

題目描述

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

思路

1.需利用邏輯與的短路特性實現遞迴終止。
2.當n==0時,(n>0)&&((sum+=Sum_Solution(n-1))>0)只執行前面的判斷,為false,然後直接返回0;
3.當n>0時,執行sum+=Sum_Solution(n-1),實現遞迴計算Sum_Solution(n)。

程式碼

public class Solution47 {


    public int Sum_Solution
(int n) { int sum = n; boolean ans = (n > 0) && ((sum += Sum_Solution(n - 1)) > 0); return sum; } public static void main(String[] args) { BeanUtil.print(new Solution47().Sum_Solution(12)); } }