这道题在《剑指offer》上是以c语言写的,书上给了三种方式,下面博主是以java语言写的。虽然博客上也有其他博主写了很多解法,但感觉还是有点复杂,下面博主以三元运算符和递归实现。
代码如下:
首先写一个Solution的类,里面包含一个方法iSum()。核心是方法里面的三元运算符。
/*
* 要求只利用三元运算符求1+2+3+...的值
*/
package testdemo;
public class Solution {
static int sum;
public int iSum(int n){
sum=sum+n;//求和
sum=n==0?sum:iSum(--n);//判断n的值,若不为0,再递归iSum这个函数
return sum;
}
public static void main(String[] args) {
Solution sl = new Solution();
sl.iSum(10);
System.out.println(sum);
}
}