日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

剑指Offer-求1+2+3+...+n

發(fā)布時(shí)間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 剑指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)遞歸終止。
  • 當(dāng)n==0時(shí),(n>0)&&((sum+=Sum_Solution(n-1))>0)只執(zhí)行前面的判斷,為false,然后直接返回0;
  • 當(dāng)n>0時(shí),執(zhí)行sum+=Sum_Solution(n-1),實(shí)現(xiàn)遞歸計(jì)算Sum_Solution(n)。
  • 思路二:

    用異常退出遞歸

    代碼實(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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。