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

每天一道leetcode:剑指 Offer 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

题目思路

使用递归,我们马上的想法是:

class Solution 
{
public:int sumNums(int n) {if(n==0) return 0;else return n+sumNums(n-1);}
};

或者:

class Solution 
{
public:int sumNums(int n) {return n==0?0:n+sumNums(n-1);}
};

但是题目要求不能出现if、A?B:C这样的关键字,所以,我们只能直接返回什么东西。返回什么?返回n。只不过n要进行自加,这样返回的就是n+sumNums(n-1),除此之外,还要有递归结束条件,也就是n==0时结束递归,所以需要先判断n是否为0,使用&&的短路原则,也就是A&&B当A为0/false时不进行B运算直接结果为0/false,这样就不会再执行sumNums(n-1)等递归部分了,实现了递归的结束。

补充:短路原则

A&&B:可以把&&看作乘法,当A为0时,0乘以任何数都为0,故不计算B,直接返回0。

A||B:可以把||看作加法,当A为1时,任意非负数加1一定不为0,故不计算A,直接返回1。

代码

class Solution 
{
public:int sumNums(int n) {n&&(n+=sumNums(n-1));return n;}
};

提交结果

欢迎大家在评论区讨论,如有不懂的部分,欢迎在评论区留言!

更新不易,宝子们点个赞支持下,谢谢!

每天一道leetcode,大家一起在评论区打卡呀!

相关文章:

每天一道leetcode:剑指 Offer 64. 求1+2+…+n(中等递归)

今日份题目&#xff1a; 求 12...n &#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&#xff09;。 示例1 输入: n 3 输出: 6 示例2 输入: n 9 输出: 45 提示 1 < n < 10000 题目思路 使用递归…...

服务器安装centos7踩坑

1、制作启动工具 下载iso https://developer.aliyun.com/mirror/?spma2c6h.25603864.0.0.20387abbo2RFbn http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spma2c6h.25603864.0.0.1995f5ad4AhJaW下载 UltraISO https://cn.ultraiso.net/插入u盘启动 到了如图所示页面…...

Java | IDEA中 jconsole 不是内部或外部命令,也不是可运行的程序

解决办法&#xff1a; 1.先将Terminal的Shell path 修改为C:\WINDOWS\system32\cmd.exe 2.在检查环境变量中的ComSpec的值 3.找到自己电脑下载的jdk的bin的地址 4.将jdk的bin地址加入到系统变量path中...

将Swift Package构建为通用二进制文件 Universal Binary

将Swift软件包构建为通用二进制文件 因此&#xff0c;在苹果在WWDC 2020期间宣布他们将把Mac从英特尔处理器过渡到苹果硅之后&#xff0c;现在是时候让每个人都准备好他们的软件了。 对大多数人来说&#xff0c;这次过渡可能更容易一些&#xff0c;特别是那些已经在iOS上支持a…...

正则表达式:贪婪与非贪婪模式

正则中的三种模式&#xff0c;贪婪匹配、非贪婪匹配和独占模式。 在这 6 种元字符中&#xff0c;我们可以用 {m,n} 来表示 &#xff08;*&#xff09;&#xff08;&#xff09;&#xff08;?&#xff09; 这 3 种元字符&#xff1a; 贪婪模式&#xff0c;简单说就是尽可能进行…...

UVa247 Calling Circles(Floyd warshall算法)

题意 给定两个人相互打电话&#xff0c;如果a打给b,b打给c,c打给a&#xff0c;则说a,b,c在同一电话圈中。给出n个人的m次通话&#xff0c;输出所有的电话圈 思路 用graph[u][v]1表示u和v之间有打电话。在使用floyd算法计算所有的点对之间的值。graph[u][v]1表示u,v之间有直接…...

Java项目之基于ssm框架的社区生活超市管理系统(附源码)

基于ssm框架的社区生活超市管理系统设计与实现&#xff08;程序源码毕业论文&#xff09; 大家好&#xff0c;今天给大家介绍基于ssm框架的社区生活超市管理系统设计与实现&#xff0c;本论文只截取部分文章重点&#xff0c;文章末尾附有本毕业设计完整源码及论文的获取方式。更…...

Android 实现录音功能

思路&#xff1a; 通过媒体录制器MediaRecorder实现&#xff1a;MediaRecorder是Android自带的音频和视频录制工具&#xff0c;它通过操纵摄像头和麦克风完成媒体录制&#xff0c;既可录制视频&#xff0c;又可单独录制音频。 MediaRecorder常用方法(录音与录像通用)&#xf…...

drawio导出矢量图

1.选中要导出的图 2.导出为pdf 3.用adobe打开pdf&#xff0c;另存为eps...

关于angular router-outlet

关于angular router-outlet Angular是一个现代化的前端框架&#xff0c;它提供了很多强大的工具来帮助我们开发出高效的Web应用。其中一个最常用的功能是路由&#xff08;routing&#xff09;系统&#xff0c;它允许我们在不同的URL之间导航并加载不同的组件。而<router-ou…...

设计模式详解-桥接模式

类型&#xff1a;结构型模式 实现原理&#xff1a;将抽象类和实现类分离&#xff0c;使其独立&#xff0c;然后使用接口再将二者连接起来。 意图&#xff1a;将抽象部分与实现部分分离&#xff0c;使它们都可以独立的变化。 主要解决&#xff1a;类变化频繁时用继承可能会出…...

设计模式—— 单一职责原则

文章目录 设计模式的目的设计模式原则单一职责原则基本介绍应用实例单一职责原则注意事项和细节 设计模式的目的 1&#xff0c;代码重用性&#xff08;即&#xff1a;相同功能的代码&#xff0c;不用多次编写&#xff09; 2&#xff0c;可读性&#xff08;即&#xff1a;编程…...

嵌入式系统中如何选择RTC电池?

RTC&#xff08;Real Time Clock&#xff09;是一种用于提供系统时间的独立定时器&#xff0c;它可以在系统断电或低功耗模式下继续运行&#xff0c;只需要一个后备电池作为供电源。在嵌入式系统中&#xff0c;选择合适的RTC电池时非常关键的&#xff0c;它会影响系统时间的准确…...

56 | 国内游戏直播竞品分析

国内游戏直播竞品分析 一、需求分析 当前直播用户群可分为两大类: 主播观众用户需求: 1.主播: 作为直播内容的创造者,主播表现方式和内容很大程度上决定了观众的需求, 其中主播主要只有三点需求: (一) 通过某一手段(如游戏技术、唱歌技巧)获取他人关注,满足虚荣心…...

STM32 CubeMX (第一步Freertos任务管理:创建、删除、挂起、恢复)

STM32 CubeMX Freertos STM32 CubeMX &#xff08;Freertos任务&#xff1a;创建、删除、挂起、恢复&#xff09; STM32 CubeMX Freertos前言一、STM32 CubeMX 配置时钟树配置HAL时基选择TIM1&#xff08;不要选择滴答定时器&#xff1b;滴答定时器留给OS系统做时基&#xff09…...

0101读写分离测试-jdbc-shardingsphere-中间件

文章目录 1 前言2、创建SpringBoot程序2.1、创建项目2.2、添加依赖2.3、生成实体类、service与Mapper1.5、配置读写分离 2、测试2.1、读写分离测试2.2、事务测试2.3、负载均衡测试 结语 1 前言 shardingshpere-jdbc定位为轻量级 Java 框架&#xff0c;在 Java 的 JDBC 层提供的…...

sqlite3将词典导入数据库

使用sqlite3代码实现将词典导入数据库中 #include <head.h> #include <sqlite3.h> #include <strings.h> #include <unistd.h> int main(int argc, const char *argv[]) {sqlite3 *db NULL;if(sqlite3_open("./dict.db",&db) ! SQLITE…...

浏览器 - 事件循环机制详解

目录 1&#xff0c;浏览器进程模型进程线程浏览器的进程和线程1&#xff0c;浏览器进程2&#xff0c;网络进程3&#xff0c;渲染进程 2&#xff0c;渲染主线程事件循环异步同步 JS 为什么会阻塞渲染任务优先级 3&#xff0c;常见面试题1&#xff0c;如何理解 js 的异步2&#x…...

析构函数中不应该抛出异常(摘录)

析构函数中抛出异常时概括性总结 从语法上面讲&#xff0c;析构函数抛出异常是可以的&#xff0c;C并没有禁止析构函数引发异常&#xff0c;但是C不推荐这一做法&#xff0c;从析构函数中抛出异常是及其危险的。 如果析构函数抛出异常&#xff0c;则异常点之后的程序不会执行&a…...

Windows定时任务计划无法显示任务程序界面的问题解决

笔者这两天写了一个python脚本程序&#xff0c;用来自动从公司的主数据系统获取数据&#xff0c;并按格式编制成excel。脚本程序编写一切顺利&#xff0c;运行结果很是完美&#xff0c;笔者很是舒心。但在最后一步&#xff0c;用上班的电脑每天早上定时运行它时&#xff0c;出了…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...

大数据治理的常见方式

大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法&#xff0c;以下是几种常见的治理方式&#xff1a; 1. 数据质量管理 核心方法&#xff1a; 数据校验&#xff1a;建立数据校验规则&#xff08;格式、范围、一致性等&#xff09;数据清洗&…...