64. 求 1+2+…+n


comments: true

difficulty: 中等
edit_url: https://github.com/doocs/leetcode/edit/main/lcof/面试题64. 求1%2B2%2B…%2Bn/README.md

面试题 64. 求 1+2+...+n

题目描述

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

示例 1:

复制代码
输入: n = 3
输出: 6

示例 2:

复制代码
输入: n = 9
输出: 45

限制:

  • 1 <= n <= 10000

解法

方法一

Python3
python 复制代码
class Solution:
    def sumNums(self, n: int) -> int:
    	# n 是 0,所以 0 and (0 + self.sumNums(-1)) 结果是 0
        return n and (n + self.sumNums(n - 1)) 
Java
java 复制代码
class Solution {
    public int sumNums(int n) {
        int s = n;
        boolean t = n > 0 && (s += sumNums(n - 1)) > 0;
        return s;
    }
}
C++
cpp 复制代码
class Solution {
public:
    int sumNums(int n) {
        n && (n += sumNums(n - 1));
        return n;
    }
};
Go
go 复制代码
func sumNums(n int) int {
	s := 0
	var sum func(int) bool
	sum = func(n int) bool {
		s += n
		return n > 0 && sum(n-1)
	}
	sum(n)
	return s
}
TypeScript
ts 复制代码
var sumNums = function (n: number): number {
    return n && n + sumNums(n - 1);
};
Rust
rust 复制代码
impl Solution {
    pub fn sum_nums(mut n: i32) -> i32 {
        n != 0
            && (
                {
                    n += Solution::sum_nums(n - 1);
                },
                true,
            )
                .1;
        n
    }
}
JavaScript
js 复制代码
/**
 * @param {number} n
 * @return {number}
 */
var sumNums = function (n) {
    return (n ** 2 + n) >> 1;
};
C#
cs 复制代码
public class Solution {
    public int result;
    public int SumNums(int n) {
        helper(n);
        return result;
    }

    public bool helper(int n) {
        result += n;
        return n == 0 || helper(n - 1);
    }
}
Swift
swift 复制代码
class Solution {
    func sumNums(_ n: Int) -> Int {
        var s = n
        let _ = n > 0 && { s += sumNums(n - 1); return true }()
        return s
    }
}
相关推荐
2401_8414956422 分钟前
【LeetCode刷题】二叉树的直径
数据结构·python·算法·leetcode·二叉树··递归
budingxiaomoli22 分钟前
优选算法-字符串
算法
qq74223498441 分钟前
APS系统与OR-Tools完全指南:智能排产与优化算法实战解析
人工智能·算法·工业·aps·排程
A尘埃1 小时前
超市购物篮关联分析与货架优化(Apriori算法)
算法
.小墨迹1 小时前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
不穿格子的程序员1 小时前
从零开始刷算法——贪心篇1:跳跃游戏1 + 跳跃游戏2
算法·游戏·贪心
大江东去浪淘尽千古风流人物1 小时前
【SLAM新范式】几何主导=》几何+学习+语义+高效表示的融合
深度学习·算法·slam
重生之我是Java开发战士2 小时前
【优选算法】模拟算法:替换所有的问号,提莫攻击,N字形变换,外观数列,数青蛙
算法
仟濹2 小时前
算法打卡 day1 (2026-02-06 周四) | 算法: DFS | 1_卡码网98 可达路径 | 2_力扣797_所有可能的路径
算法·leetcode·深度优先
yang)2 小时前
欠采样时的相位倒置问题
算法