1. 程式人生 > >求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)(劍指offer)

今天在牛客網上遇到這樣一道題目,求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)
一般大家在看到這種題目的時候是完全沒有頭緒的,但是我們可以從多方面進行思考,首先我們應該想到的是遞迴,但是不能用if等條件判斷語句,無法判斷遞迴出口讓大家很頭疼。於是本題的切入點就是如何判斷遞迴出口,我們可以用位運算來解決。

class Solution {
public:
    int Sum_Solution(int n) {
    }
};

位運算子&&當左值為真的時候才進行右值的判斷;我們再寫一個函式來求他所加出來的值

 int func(int n,int &sum)
    {
        n&&func(n-1,sum);
        sum+=n;
        return sum;
    }

遞迴呼叫當n&&func(n-1,sum),當&&左邊的值為真的時候進行對&&右邊判斷,遞迴當n=0的時候,左值為假返回遞迴出口。

完整程式碼如下:

class Solution {
public:
    int Sum_Solution(int n) {
        int sum=0;
        int
tmp=func(n,sum); return tmp; } int func(int n,int &sum) { n&&func(n-1,sum); sum+=n; return sum; } };

相關推薦

461+2+3+...+n要求不能使用除法forwhileifelseswitchcase關鍵字條件判斷語句A?B:C

closed else while spl 判斷語句 stat 條件 執行 ret 思路:循環或者遞歸都有個結束條件和執行條件。用&&短路與代替。 //短路與&&;就是只有前一個條件滿足才可以去判斷第二個條件。 //遞歸的出口

【類和物件】1+2+3+...+n要求不能使用除法forwhileifelseswitchcase關鍵字條件判斷語句A?B:C

題目描述: 求1+2+3+...+n,要求不能使用乘除法(數學公式)、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C). 分析:這道題雖然常用的方式都給禁掉了,但是可以使用我們c++學過的類和物件,通過使用類和靜態來完成。常規情況下,從1+到n,

offer-1+2+3+...+n要求不能使用除法forwhileifelseswitchcase關鍵字條件判斷語句A?B:C

題目如下: 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C) 本題考的知識點就兩點 && 運算子 false && true =>

題目描述 1+2+3+...+n要求不能使用除法forwhileifelseswitchcase關鍵字條件判斷語句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

offer---471+2+3+...+n要求不能使用除法forwhileifelseswitchcase關鍵字條件判斷語句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(

C++實現:1+2+3+...+n要求不能使用除法forwhileifelseswitchcase關鍵字條件判斷語句A?B:C

程式碼: class Solution { public: class Sum { public: Sum() { s_count++; s_sum += s_count;

1+2+3+...+n要求不能使用除法forwhileifelseswitchcase關鍵字條件判斷語句A?B:C。Java實現

前幾天跟同學交流聽說一個比較有意思的oj題目,具體描述如下: 題目描述: 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 輸入: 輸入可能包含多個測試樣例。 對於每個測試案例,輸

1+2+3+...+n要求不能使用除法forwhileifelseswitchcase關鍵字條件判斷語句A?B:Coffer

今天在牛客網上遇到這樣一道題目,求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C) 一般大家在看到這種題目的時候是完全沒有頭緒的,但是我們可以從多方面進行思考,首先我們應該想

題目:1+2+...+n,要求不能使用除法for,while,if,else,switch,case關鍵字條件判斷語句(A?B:C)

    這個問題本身沒有太多的實際意義,但不少面試官認為這個可以考察應聘者發散思維能力的題目,而發散思維能夠反映出應聘者知識面 的寬度,以及對程式設計相關技術理解的深度。     通常求1+2+..+n除了用公式n(n+1)/2之外,無外乎迴圈和遞迴兩種思想,由於已經明確限

java題目: 1+2+...+n,要求不能用除法 for while if else switch case 關鍵字條件判斷語句 A?B:C

這是劍指offer的46道面試題,由於面試官諸多條件的限制,本文采用遞迴的手法完成程式碼 public class Sum { public static void main(String[] args) { System.out

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】實現1+2+3+..+n要求不使用乘除法迴圈判斷條件

這道題目的實質是考察程式設計師的發散思維能力,發散思維能夠反映出應聘者知識面的寬度,以及對程式設計相關技術理解的深度。拿到這道題時,首先考慮最簡便的方法當然是利用等差數列求和公式(n+1)n/2,想要得出結果,無外乎迴圈和遞迴兩種,但是題目限制了迴圈,判斷條件都不能使用,使用

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,

471+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

471+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

1+2+3+...+n的非常規方法

指針 pub pri res n) delete pre private bject 題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 思路:   1、利

牛客471+2+3+...+n

for 題目 lse n-1 spa pre color switch 判斷語句 // 題目描述 // 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。

1+2+3+...+n

直接 等等 lin 遞歸 bool word esc scribe bject 題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 首先看到這個題,不讓用for,

禁止使用循環判斷1+2+3+..n

乘除 int 運算符 禁止 通過 abs http 基本 clas 題目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。 思路: 看到這一題的時候,不能使用乘除法和循環

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):