问题形貌
求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;
}