C++短絡評価特性の利用


タイトル
1+2+3+…+nを求めて、乗除法、for、while、if、else、switch、caseなどのキーワードと条件の判断文(A?B:C)を使うことができないことを要求します.
ソリューション
class Solution {
public:
    int Sum_Solution(int n) {
        int res = n;
        res && (res = res + Sum_Solution(n-1));
        return res;
    }
};

インテリジェントポイント
1.再帰を利用するサイクルの使用を避ける.C++の短絡評価特性を利用して,再帰的な終端を実現し,条件判断を回避した.3.ショート評価
「&&」および「|」オペレータのオペランド式として、これらの式は、評価を行う際に、最終的な結果が真か偽かを決定できる限り、評価プロセスが終了します.これを短絡評価と呼ぶ(short-circuit evaluation).この2つのオペレータの重要なプロパティです.expr 1とexpr 2が式であり、expr 1の値が0である場合、次の論理式の評価過程でexpr 1&&expr 2 expr 2は、論理式全体の値が0と決定されるため、評価は行われません.同様に、expr 1の値が0でない場合、expr 1の値は0と決定されません.次の論理式の評価中、expr 1|expr 2 expr 2は、論理式全体の値が1と決定されたため、評価されません.
Reference
短絡評価テーマの討論