题目描述
求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路
1.此问题可以使用递归思想求解,当加到0时,停止递归即可。
2.既然不可以使用流程控制的关键字,我们可以使用&&的短路操作来代替流程控制。
Java代码实现
class Solution { public int sumNums(int n) { int res = 0; boolean flag = (n != 0) && ((res = n + sumNums(n-1))>0); return res; } }
Golang代码实现
func sumNums(n int) int { var fun func(res *int,n int) bool fun = func(res *int,n int) bool { *res = *res + n; return (n!=0)&&(fun(res,n-1)) } res := 0 fun(&res,n) return res }