在不使用乘除,for, while等循环关键字以及if,else,switch,三目运算等条件语句的情况下如何计算1+2+3+4+5+6+…+n。
public class TestMatch {
@Test
public void test() {
int n = 75;
System.out.println(sum(n));
System.out.println(sumWithFor(n));
System.out.println(sumWithStream(n));
}
public int sum(int n) {
int sum = n;
boolean flag = n > 0 && (sum += sum(n -1)) > 0;
return sum;
}
/**
* for循环验证sum()运算结果
* @param n
* @return
*/
public int sumWithFor(int n) {
int sum = 0;
if(n <= 0) {
return sum;
}
for(int i = 0; i <= n; i++) {
sum += i;
}
return sum;
}
public int sumWithStream(int n) {
return IntStream.rangeClosed(1, n).sum();
}
}
}