题目:不用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)求1+2+…+n。
在网上看到2种解法,
解法1:利用类的静态变量,每创建一个类对象,将静态变量增加一定的值,然后创建一个n大的对象数组,打印出该静态变量。
解法2:利用&&的短路性质(其实是变相的 if 表达式),然后进行递归。
int sum(int n) {
int tmp = 0;
n && (tmp = sum(n - 1));//若n == 0,则不再对tmp求值,相当于递归的终止条件
return n + tmp;
}