题目描述
求 1+2+…+n
,要求不能使用 乘除法、for、while、if、else、switch、case
等关键字及条件判断语句 A?B:C
。
样例
输入:10 输出:55
解法
前面的和+后一个即为所求的总和
有 if 的递归方法
public static int Sum_Solution(int n) { int res = n; if(n>0){ res += Sum_Solution(n-1); } return res; }
但题意说不能用 if ,所以:
public static int Sum_Solution(int n) { int res = n; boolean t = (res>0) && ((res += Sum_Solution(n-1))>0); return res; }
java中&和&&的区别
&和&&都是逻辑运算符,用于判断两边同时为真则为真,否则为假。
但是&&当第一个条件为假之后,后面的条件就不执行了,它具有短路功能。
而& 还是要继续执行,直到整个条件语句执行完成为止。