题目:
求1+2+…+n,
要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
思路:
不能使用关键字, 可以使用递归。
但是使用递归存在终止递归的问题,也就是如何把n变成终止条件。
可以把n转换成布尔值 。
对n连续做两次反运算,即!!n,非零的n转换成true,0转换成false。
代码:
int Sum(int n)
{
int tempSum = n;
(!!n) && (tempSum += Sum(n-1));
return tempSum;
}