64. 求 1+2+…+n

ops/2024/9/24 8:43:57/

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}
}

http://www.ppmy.cn/ops/110708.html

相关文章

HW行动指南,前辈教你如何真正靠护网赚到钱!

‍正文&#xff1a; HW行动&#xff0c;攻击方的专业性越来越高&#xff0c;ATT&CK攻击手段覆盖率也越来越高&#xff0c;这对于防守方提出了更高的要求&#xff0c;HW行动对甲方是一个双刃剑&#xff0c;既极大地推动了公司的信息安全重视度和投入力量&#xff0c;但同时…

【Obsidian】当笔记接入AI,Copilot插件推荐

当笔记接入AI&#xff0c;Copilot插件推荐 自己的知识库笔记如果增加AI功能会怎样&#xff1f;AI的回答完全基于你自己的知识库余料&#xff0c;是不是很有趣。在插件库中有Copilot插件这款插件&#xff0c;可以实现这个梦想。 一、什么是Copilot&#xff1f; 我们知道githu…

SpringBoot开发——整合Redis

文章目录 1、创建项目&#xff0c;添加Redis依赖2、创建实体类Student3、创建Controller4、配置application.yml5、整合完成 Redis ( Remote Dictionary Server &#xff09;是一个开源的内存数据库&#xff0c;遵守 BSD 协议&#xff0c;它提供了一个高性能的键值&#xff08…

【系统分析师】计算机组成与体系架构

计算机硬件组成&#xff0c;运算器&#xff0c;控制器 计算机基本硬件系统五大组成部分&#xff1a;运算器&#xff0c;控制器&#xff0c;存储器&#xff0c;I/O设备 运算器的四个重要寄存器&#xff1a; 算术逻辑单元&#xff08;实时对数据的算术和逻辑运算&#xff0c;…

【C++11 ——— 可变参数模板】

C11 ——— 可变参数模板 可变参数模板的概念可变参数模板的定义方式参数包的展开递归式展开参数包逗号表达式展开参数包 emplaceemplace 的使用emplace 的优势 可变参数模板的概念 在C11之前,函数模板和类模板中的模板参数数量是固定的。可变参数模板打破了这个限制,提供了一…

JDK8的一些主要的新特性

JDK8&#xff08;Java Development Kit 8&#xff09; 是一个重要的版本&#xff0c;带来了许多显著的特性和改进&#xff0c;极大地提升了 Java 语言的功能性和开发效率。以下是 JDK 8 的一些主要新特性&#xff1a; 一、Lambda 表达式 1.简化匿名内部类的写法&#xff0c;…

95、k8s之rancher可视化

一、ranker 图形化界面 图形化界面进行k8s集群的管理 rancher自带监控----普罗米修斯 [rootmaster01 opt]# docker load -i rancher.tar ##所有节点 [rootmaster01 opt]# docker pull rancher/rancher:v2.5.7 ##主节点[rootmaster01 opt]# vim /etc/docker/daemon.jso…

ubuntu升级python版本

ubuntu升级python版本 # 更新包列表 sudo apt update# 安装 Python 所需的软件包 sudo apt install software-properties-common# 添加 Python PPA(以 Python 3.12 为例) sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update# 安装新版本 sudo apt install python3.12…