leetcode.64 騷操作求和

面試題64. 求1+2+…+n

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

 

示例 1:

輸入: n = 3
輸出: 6

示例 2:

輸入: n = 9
輸出: 45

 

限制:

  • 1 <= n <= 10000

這道題更多的像是個腦筋急轉彎

不能用求和公式,不能balabala,

。。。。。能想到的都不讓用

那咋整

 

  1. for用遞歸實現,這很好理解

  2. if用邏輯運算符的計算特性來解決。即and的短路特性。

    A and function() 如果A是True,function()會運行,如果A爲false,直接終止,後面的就不看了

#include <iostream>

using namespace std;

int sumNums(int n) {
    n && (n += sumNums(n - 1));
    return n;

}

int main(){
	int n = 10;
	cout << sumNums(n) << endl;
}

啦啦啦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章