思路分析

题目不重要,主要是限制了手段。
使用递归来实现,边界条件的判断方法被限制了,不能用条件判断语句,只能用逻辑运算了,&&在前面条件为false时能产生截断的效果,阻断后续语句执行。可以在&&右侧执行递归,然后随便写个保证右侧为true的条件。

代码实现

  1. class Solution {
  2. public int sumNums(int n) {
  3. int ans = n;
  4. boolean flag = (n > 1) && ((ans += sumNums(n - 1)) >= 0);
  5. return ans;
  6. }
  7. }