剣指Offer 64.1+2+...+n(ショートの書き方)を求めます
1+2+…+nを求めて、乗除法、for、while、if、else、switch、caseなどのキーワードと条件の判断文(A?B:C)を使うことができないことを要求します.
短絡の原則から分かるように,nが0でない場合は実行可能文2,nが0である場合は実行文1である.この考えにより、
1:
: n = 3
: 6
2:
: n = 9
: 45
:
1 <= n <= 10000
int sumNums(int n){
n && (n += sumNums(n-1));
return n;
}
n
を文1とするn += sumNums(n-1)
を文2とする短絡の原則から分かるように,nが0でない場合は実行可能文2,nが0である場合は実行文1である.この考えにより、
if
を用いずに
および
を達成する目的が達成される.