劍指Offer--求1+2+3+...+n
題目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。
先上程式碼:
public class Solution {
public int Sum_Solution(int n) {
int ans=n;
boolean b=(ans!=0) && ((ans+=Sum_Solution(n-1))!=0);
return ans;
}
}
解題思路:
看到這道題我首先想到的是等差數列求和的公式,可是題目上不能採用乘除法。想一想其他的方法基本上都要進行最後n的判斷來結束加法。最後在看了評論區的解法後才明白該怎麼做。
這道題採用的是遞迴的解法,我們知道遞迴解法最後是需要一個結束條件的,如果沒有結束條件的話,會一直遞迴下去,那麼我們這道題也就無解了。仔細觀察下面的式子:
boolean b=(ans!=0) && ((ans+=Sum_Solution(n-1))!=0);
其實遞迴的結束條件就包含在這個裡面。&&是邏輯與,邏輯與有個短路特點,如果前面為假的話,後面的就不會進行計算了(這裡在程式設計的時候我們也可以利用這種特點來減少運算),所以當遞迴到n=0的時候,就不會再繼續往下進行遞迴了。
相關推薦
劍指Offer--求1+2+3+...+n
題目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 先上程式碼: public class Solution { public int Sum_Solution(int
劍指offer-求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)
題目如下: 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C) 本題考的知識點就兩點 && 運算子 false && true =>
[劍指Offer] 求1+2+3+...+n(Python)
題目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 思路 思路一:Python語言特性 思路二:遞迴 + 邏輯與的短路特性代替if語句 程
劍指offer____求1+2+3+...+n
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 int Sum_Solution(int n) { int sum = n; sum && (sum +
劍指offer第64:求1+2+3+...+n
題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 # -*- coding:utf-8 -*- class Solution: def Sum_Solution(self, n):
劍指offer系列(十七)求1+2+3+...+n,不用加減乘除做加法,把字串轉換成整數
求1+2+3+...+n 題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 解題思路: 法一:利用python的特性 法二:用兩個函式,一個遞迴,另一個終止遞迴。如果對n連續進
劍指offer 47. 求1+2+3+...+n
原題 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 Reference Answer 思路分析 思路很清奇,採用遞迴思路即可。 # -*- coding:utf-8 -*- cl
(劍指offer)求1+2+3+……+n
題目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 public class Solution { public int Sum_Solution(int n) {
《劍指offer》-- 構建乘積陣列、求1+2+3+...+n、不用加減乘除做加法、包含min函式的棧
一、構建乘積陣列: 1、題目: 給定一個數組A[0,1,...,n-1],請構建一個數組B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 2、解題思路: B[i]的
劍指offer系列(47):求1+2+3+...+n
題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 樣例 輸入5 輸出15 思路分析 方法一:利用Math類的api實現n(n+1),即Math.pow(
劍指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_Sol
劍指offer---47求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 public class Solution { public int Sum_Solution(int n) { // if(
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)(劍指offer)
今天在牛客網上遇到這樣一道題目,求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C) 一般大家在看到這種題目的時候是完全沒有頭緒的,但是我們可以從多方面進行思考,首先我們應該想
求1+2+3+...+n (不能使用條件語句和乘除法)(Java 劍指offer)
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 public class number { //遞迴 //利用邏輯與的短路特性實現遞迴終止 //當n==0時,(n>
《劍指offer》求1+2+3+...+n
【 宣告:版權所有,轉載請標明出處,請勿用於商業用途。 聯絡信箱:[email protected]】 題目描述求1+2+3+...+n,要求不能使用乘除法、for、while、i
劍指Offer47:求1+2+3....n
思路: 運用遞迴的思路,遞迴停止的條件是n=0,然後回溯。 要注意python中邏輯運算子的用法,a and b,a為False,返回a,a為True,就返回b # -*- coding:utf-8 -*- class Solution: total=0
46、求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。
closed else while spl 判斷語句 stat 條件 執行 ret 思路:循環或者遞歸都有個結束條件和執行條件。用&&短路與代替。 //短路與&&;就是只有前一個條件滿足才可以去判斷第二個條件。 //遞歸的出口
求1+2+3+....+n
函數指針 typedef c語言 ace pri pre sin 變量 code 求1+2+3+...+n,要求不能使用乘除法,for,while,if,else,switch,case等關鍵字及條件判斷語句(a?b:c)。 1、構造函數 在類中定義靜態成員變量N和sum,
47、求1+2+3+...+n
n) col 除法 clas 條件判斷 als pub turn 返回 一、題目 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 二、解法 1 public class So
47求1+2+3+...+n
描述 blog lean 判斷 public 如何 bool gpo post 題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 用遞歸 1 public clas