[剑指offer] 求1+2+3+...+n

简介: 本文首发于我的个人博客:尾尾部落题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

本文首发于我的个人博客:尾尾部落

题目描述

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

解题思路

累加不能用循环的话,那就试试递归吧。
判断递归的终止条件不能用 if 和 switch,那就用短路与代替。
(n > 0) && (sum += Sum_Solution(n-1))>0
只有满足n > 0的条件,&&后面的表达式才会执行。

参考代码

public class Solution {
    public int Sum_Solution(int n) {
        int sum = n;
        boolean t = (n > 0) && (sum += Sum_Solution(n-1))>0;
        return sum;
    }
}
目录
相关文章
|
23天前
|
机器学习/深度学习 Java
【剑指offer】- 求1+2+3+...+n -47/67
【剑指offer】- 求1+2+3+...+n -47/67
|
23天前
剑指Offer(第二版)06
剑指Offer(第二版)06
12 0
|
23天前
剑指Offer(第二版)10-2
剑指Offer(第二版)10-2
14 0
|
23天前
剑指Offer(第二版)03
剑指Offer(第二版)03
12 0
|
23天前
剑指Offer(第二版)05
剑指Offer(第二版)05
11 0
|
23天前
剑指Offer(第二版)04
剑指Offer(第二版)04
9 0
【剑指offer】-变态跳台阶-09/67
【剑指offer】-变态跳台阶-09/67
|
12月前
剑指offer 72. 求1+2+…+n
剑指offer 72. 求1+2+…+n
56 0
|
算法 Java
剑指offer(1-10题)详解
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
110 0
剑指offer(1-10题)详解
|
BI Go 容器
剑指offer(51-59题)详解
思路: 这题刚开始还没想到,刚开始还想着用啥位运算?刚开始想着怎么用总数变成对应的数,但是人家要求不能用除法。得用乘法。(不要按照公式每个每个的死算,这样太低效)。其实把上面等式右侧看成两部分就行了。A[0]*A[1]*...*A[i-1]和A[i+1]*...*A[n-1]。
58 0
剑指offer(51-59题)详解