求1+2+3+…+n
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
狗血,太狗血了!
思路
分析
不能用for、while ,我居然没想到递归,确实,用递归写这种简单求和确实没写过。
递归大方向是没错的,但是要求不能使用if、else、switch、case、A?B:C。
if(n == 1 ) return 1; 这条语句就要想办法替换掉了
解题
n >1 && (n += Sum_Solution(n-1))
return 1;
满足大于1的条件就 递归,不满足就不会执行后面的调用,秒啊!
代码
public int Sum_Solution(int n) {// 递归boolean x = (n > 1)&&(n += Sum_Solution(n-1))>0;return n;
}
总结
循环结构替换:for、while、递归
分支结构替换:if else、switch case、三目运算符、短路与