利用三元运算符求1+2+3+...+n,要求不能使用乘,除,for ,while,if ,else ,switch,case (java语言实现)

这道题在《剑指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);
		
	}
 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值