劍指offer---47求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)
阿新 • • 發佈:2019-01-04
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。
public class Solution { public int Sum_Solution(int n) { // if(n==1) return 1; // else return n+Sum_Solution(n-1); int ans =n; boolean t= ans&&(ans += Sum_Solution(n - 1)); return ans; } }
/* * 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case * 等關鍵字及條件判斷語句(A?B:C)。 * 思路:等差數列求和公式:n*(n+1)/2=(n^2+n)/2,由於不能用除法,因此可以右移一位表示除以2 */ public class Sum_Solution { public int sum_Solution(int n) { return (int)(Math.pow(n, 2) + n) >> 1; } public static void main(String[] args) { System.out.println(new Sum_Solution().sum_Solution(100)); } }