【剑指 Offer 题解】64. 求 1+2+3+...+n

题目描述

要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句 A ? B : C。

思路

1、不能使用for while 循环,咱们可以使用递归啊。
2、递归终止需要进行终止条件判断,但本题中不能使用 if 判断,也不能使用三元表达式。
3、条件与&& 具有短路原则,即第一个条件不成立,第二个条件不会执行。利用这一特性,可以将递归终止条件作为第一个条件,递归语句作为第二个条件。

public int sum(int n) {
	int result = 1;
	boolean flag = n > 1 && ((result = n + sum(n - 1)) > 0);
	return rusult;
}
发布了18 篇原创文章 · 获赞 0 · 访问量 512

猜你喜欢

转载自blog.csdn.net/qingqingxiangyang/article/details/104248368