剑指Offer-求1+2+3+...+n
生活随笔
收集整理的這篇文章主要介紹了
剑指Offer-求1+2+3+...+n
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關(guān)鍵字及條件判斷語句(A?B:C)。
思路
思路一:
思路二:
用異常退出遞歸
代碼實(shí)現(xiàn)
package Other;/*** 求1+2+3+...+n* 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關(guān)鍵字及條件判斷語句(A?B:C)。*/ public class Solution17 {public static void main(String[] args) {Solution17 solution17 = new Solution17();System.out.println(solution17.Sum_Solution(3));}/*** 用異常退出遞歸** @param n* @return*/public int Sum_Solution_2(int n) {try {int i = 1 % n;return n + Sum_Solution_2(n - 1);} catch (Exception e) {return 0;}}/*** 1.利用邏輯與的短路特性實(shí)現(xiàn)遞歸終止。* 2.當(dāng)n==0時(shí),(n>0)&&((sum+=Sum_Solution(n-1))>0)只執(zhí)行前面的判斷,為false,然后直接返回0;* 3.當(dāng)n>0時(shí),執(zhí)行sum+=Sum_Solution(n-1),實(shí)現(xiàn)遞歸計(jì)算Sum_Solution(n)。** @param n* @return*/public int Sum_Solution(int n) {int sum = n;boolean flag = (sum > 0) && ((sum += Sum_Solution(n - 1)) > 0);return sum;} }轉(zhuǎn)載于:https://www.cnblogs.com/wupeixuan/p/8623261.html
總結(jié)
以上是生活随笔為你收集整理的剑指Offer-求1+2+3+...+n的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cannot import name U
- 下一篇: 在gridview里查找模板里的butt