短路求值:作为“&&”和“||”操作数表达式,这些表达式在进行求值时,只要最终的结果已经确定真或假,求值过程便告终,这就是短路求值。因此可以利用左边的表达式来作为递归结束的判断条件。因此递归的表达式就在右边了。使用&&,表示两边都为真,才为真,左边为假,右边就没用了。因此在不断递归时,直到左边为假时,才不执行右边。因此在第一次进行右边的判断时,就进入递归的调用。
func Sum_Solution( n int) int {
var f func(ret *int, n int) bool
f = func(ret *int, n int) bool {
*ret += n
return n>0 && f(ret, n-1)
}
var sum int
f(&sum,n)
return sum
}
版权声明:《 剑指offer 求1+2+3+4+。。。。。+n 》为admin原创文章,转载请注明出处!
最后编辑:2021-3-2 09:03:19