当前位置: 首页 > news >正文

64. 求 1+2+…+n


comments: true
difficulty: 中等
edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9864.%20%E6%B1%821%2B2%2B%E2%80%A6%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
class Solution:def sumNums(self, n: int) -> int:# n 是 0,所以 0 and (0 + self.sumNums(-1)) 结果是 0return n and (n + self.sumNums(n - 1)) 
Java
class Solution {public int sumNums(int n) {int s = n;boolean t = n > 0 && (s += sumNums(n - 1)) > 0;return s;}
}
C++
class Solution {
public:int sumNums(int n) {n && (n += sumNums(n - 1));return n;}
};
Go
func sumNums(n int) int {s := 0var sum func(int) boolsum = func(n int) bool {s += nreturn n > 0 && sum(n-1)}sum(n)return s
}
TypeScript
var sumNums = function (n: number): number {return n && n + sumNums(n - 1);
};
Rust
impl Solution {pub fn sum_nums(mut n: i32) -> i32 {n != 0&& ({n += Solution::sum_nums(n - 1);},true,).1;n}
}
JavaScript
/*** @param {number} n* @return {number}*/
var sumNums = function (n) {return (n ** 2 + n) >> 1;
};
C#
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
class Solution {func sumNums(_ n: Int) -> Int {var s = nlet _ = n > 0 && { s += sumNums(n - 1); return true }()return s}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MOS工作的三种状态及其分析——亚阈值区(截至区),深三极管区(又叫深线性区)和饱和区
  • 基于SpringBoot+定时任务实现地图上绘制车辆实时运动轨迹图
  • 第五章 继承、多态、抽象类与接口 课后训练(3)
  • eureka.client.service-url.defaultZone的坑
  • Java是怎么处理死锁的
  • Python|OpenCV-实现识别目标图像中的圆圈(20)
  • 本地部署大模型并使用知识库Windows下Ollama+Docker+MaxKB安装的记录
  • VMware虚拟机经常性卡死,打开运行一段时间后卡死,CPU占比增至100%
  • 【STM32】DAC数字模拟转换
  • 【BurpSuite】Cross-site scripting (XSS 学徒部分:1-9)
  • Go 并发模式:扩展与聚合的高效并行
  • GPT对话知识库——将寄存器中的一位数据读到变量中需要什么步骤?C语言中掩码的作用。
  • SpringBoot使用@Async注解,实现异步任务
  • 硬件工程师笔试面试——无线通讯模块
  • Go并发编程的高级技巧——请求复制与限流
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • Cookie 在前端中的实践
  • HTTP那些事
  • k个最大的数及变种小结
  • Python十分钟制作属于你自己的个性logo
  • python学习笔记 - ThreadLocal
  • Python语法速览与机器学习开发环境搭建
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • XML已死 ?
  • 从PHP迁移至Golang - 基础篇
  • 对象管理器(defineProperty)学习笔记
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 检测对象或数组
  • 那些年我们用过的显示性能指标
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • puppet连载22:define用法
  • ​学习一下,什么是预包装食品?​
  • # Java NIO(一)FileChannel
  • #include
  • #pragma multi_compile #pragma shader_feature
  • #Z0458. 树的中心2
  • (11)MATLAB PCA+SVM 人脸识别
  • (4)(4.6) Triducer
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (八十八)VFL语言初步 - 实现布局
  • (备忘)Java Map 遍历
  • (六)Flink 窗口计算
  • (四) Graphivz 颜色选择
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .DFS.
  • .dwp和.webpart的区别
  • .NET Project Open Day(2011.11.13)
  • .NET 发展历程
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET框架设计—常被忽视的C#设计技巧
  • .NET企业级应用架构设计系列之应用服务器
  • .NET中使用Protobuffer 实现序列化和反序列化