【刷算法】求1+2+3+...+n

问题形貌

求1+2+3+…+n,请求不能运用乘除法、for、while、if、else、switch、case等关键字及前提推断语句(A?B:C)。

剖析

问题请求不能运用乘除法、for、while、if、else、switch、case等关键字及前提推断语句,那末起首就要思索怎样才能使n一次次的相加且到0的时刻完毕。起首递归能够完成每次n-1的相加,即类似于n+f(n-1)如许的。然则如许做的话递归的出口在哪呢,也就是我们不能运用前提语句来掌握递归什么时候住手。

细致想一想另有什么运算符能够到达前提掌握的结果,这个时刻【且】运算符就涌现了,关于A&&B,当A为真时,才会运转到B;假如A为假,则B不会运转。

代码完成

function Sum_Solution(n)
{
    var sum = n;
    sum && (sum += Sum_Solution(n-1));
    return sum;
}
    原文作者:亚古
    原文地址: https://segmentfault.com/a/1190000015592507
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞