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

題目如下:

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

本題考的知識點就兩點

  1. && 運算子
    false && true => false;
    true && exp => exp;
    當表示式的前半部分的值是false時,結果就是false,後面的表示式不會計算
    當表示式的前半部分的值是false,結果取決於後半部分表示式的值
    0 && 3 => 0
    3 && 5 => 5
  2. 本題考查的是遞推

有了上面兩點,結果就呼之欲出了

function Sum_Solution(n)
{
    return  n && n + Sum_Solution(n -1);
}