剑指 Offer 64. 求1+2+…+n

news2024/11/20 20:35:28

剑指 Offer 64. 求1+2+…+nhttps://leetcode.cn/problems/qiu-12n-lcof/

 

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

示例 1:

输入: n = 3
输出: 6

示例 2:

输入: n = 9
输出: 45

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/qiu-12n-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

【解法一】使用递归

通过一个 && 操作进行判断,如果不满足n>1 即当n=1的时候就不会进行后续递归,执行res+=n

进行返回,也就是利用&&与运算的短路原则实现这样的递归结束判断

class Solution {
public:
    int res = 0;
    int sumNums(int n) {
        bool p = (n>1) && sumNums(n-1);
        res += n;
        return res;
    }
};

【解法二】等差数列公式  首加尾乘个数除以二

由于不能使用乘除法,所以利用二维数组sizeof求字节大小,利用char与bool类型一个字节,即总字节数/2即为所求。

class Solution {
public:
    int sumNums(int n) {
        char arr[n][n+1];    // 一个字节变量 的 bool 或者 char
        return sizeof(arr)>>1;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux——安装JDK和OpenJDK【多种方法】

目录 一、Linux安装OpenJDK 1、查看系统是否有自带的版本 2、删除OpenJDK 3、本地下载OpenJDK 4、无法本地下载,也可以使用命令下载(方法1) 4、无法本地下载,也可以使用命令下载(方法2) 5、拓展 三…

3-3-多线程-TheadLocal内存泄漏

Java TheadLocal内存泄漏 1、引言 组内来了一个实习生,看这小伙子春光满面、精神抖擞、头发微少,我心头一喜:绝对是个潜力股。为了帮助小伙子快速成长,我给他分了一个需求,这不需求刚上线几天就出网上问题了&#x1…

C++ 树进阶系列之线段树和它的延迟更新

1. 前言 线段树和树状数组有相似之处,可以用于解决区间类型的问题。 但两者又各个千秋,树状数组本质是数组,有着树的形,可以借用树的一些概念。线段树是典型的二叉树结构,无论神和形都是树,可以应用树的所…

用 Python 的 tkinter 模块编写一个好看又强大的中国象棋

继上次我的第一版的《中国象棋》程序之后,我又编写了第二版的《中国象棋》程序,关注我的粉丝知道,我在第一篇《中国象棋》的文章末尾说了,我会出第二版的,对第一版感兴趣的朋友们,可以去看看,也…

VueJS 之样式冲突与样式穿透

文章目录参考描述样式冲突现象scoped原理样式穿透深度选择器使用原理顶层元素局限性参考 项目描述搜索引擎Bing哔哩哔哩黑马程序员 描述 项目描述Edge109.0.1518.70 (正式版本) (64 位)操作系统Windows 10 专业版vue/cli5.0.8npm8.19.3VueJS2.6.14 样式冲突 在使用 Vue 进行…

大文件上传/下载

一、前言 大文件上传下载一直以来是前端常用且常考的热门话题。本文将分别介绍大文件上传/下载的思路和前端实现代码。 二、分片上传 整体流程 对文件做切片,选择文件后,对获取到的file对象使用slice方法可以将其按照制定的大小进行切片,…

使用matplotlib,pylab进行python绘图

一提到python绘图,matplotlib是不得不提的python最著名的绘图库,它里面包含了类似matlab的一整套绘图的API。因此,作为想要学习python绘图的童鞋们就得在自己的python环境中安装matplotlib库了,安装方式这里就不多讲,方…

openmmlab学习打卡1

openmmlab学习打卡1通用视觉框架 OpenMMLab通过 conda 安装通用视觉框架 OpenMMLab 基于pytorch实现 其中: 分类算法在 mmclassification 模块下 目标检测在 mmdetection 模块下 分割模型在 mmsegmentation 模块下(openmmlab 2.0 版本中加入&#xff09…

洛谷P1885 Moo —— 搜索

This way 题意: 奶牛 Bessie 最近在学习字符串操作,它用如下的规则逐一的构造出新的字符串: S(0)S(0) S(0) moo S(1)S(0)S(1) S(0) S(1)S(0) m ooo S(0) S(0) S(0) moo m ooo moo moomooomoo S(2)S(1)S(2) S(1) S(2)S(1) m oooo S(…

无js实现拖拽边框改变大小的笔记

前言 最近刷抖音看到一款游戏"拣爱",看到这个人手动拖动的很有意思,就想着能不能前端实现,来学习学习,虽然说最终的效果没有gif图片那么好,但是也算实现了,吧… 具体原理 利用resize属性所出现的小拖拽条 再配合::-webkit-scrollbar设置拖拽区域宽度,高度,结合opac…

手动签发证书配置nginx

openssl和ssh基本用法 通过OpenSSL工具生成证书 创建私钥 openssl genrsa -des3 -out server.key 2048 注意,centos版本如果是CentOS Linux release 8.0.1905 (Core)版本,私钥长度不能设置成1024位,必须2048位。不然再最后启动nginx时会出…

java之数组模块

数组定义格式1.1数组概述一次性声明大量的用于存储数据的变量要存储的数据通常都是同类型数据,例如:考试成绩1.2什么是数组数组(array)是一种用于存储多个相同类型数据的存储模型1.3数组的定义格式格式一:数据类型[] 变量名范例: …

h5实现相机

什么是取景器 取景器是什么?取景器是相机的一个专业术语,在前端就是扫描拍照 取景器的实现原理 请求手机的一个媒体类型的视频轨道,利用一个div或者图片作为上层蒙层,然后在利用canvas绘制视频中某一帧的画面绘制为图片。 前期…

HTML基础知识

一个网站由两部分组成:前端和后端。前端主流语言目前是HTML、CSS、JS等。HTML只是描述了页面的内容(骨架),CSS才是描述了页面的样式。HTML结构HTML标签HTML代码是由“标签”构成的,HTML描述了页面上有什么东西&#xf…

数字化转型导师坚鹏:银行数字化转型为什么需要融合王阳明心学

在BLM银行数字化转型方法论中,我之所以融合BLM模型与王阳明心学,作为一个工科背景并拥有多年软硬件产品研发经验的人来说,深刻地知道很多人利用了科技的力量做了大量的恶事,而不是善事,如黑客大量盗取、泄漏、贩卖客户…

ESLint 的一些理解

ESLint ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误。 为什么要使用ESLint 有的可以帮我们避免错误;有的可以帮我们写出最佳实践的代码;有的可以帮我们规范变量的使用方式&a…

Docker入门之使用Dockerfile 构建镜像(七)

文章目录1. 前言2. Docker file 核心要点2.1 注意事项2.2 Docker file 执行流程2.3 Docker Image、Docker file、Docker Container区别2.4 Dockerfile常用保留字指令2.4.1 FROM2.4.2 MAINTAINER2.4.3 RUN2.4.4 EXPOSE2.4.5 WORKDIR2.4.6 USER2.4.7 ENV2.4.8 ADD2.4.9 COPY2.4.1…

ansible 简单使用

运行过程 1.加载自己的配置文件,默认/etc/ansible/ansible.cfg; 2.查找对应的主机配置文件,找到要执行的主机或者组; 3.加载自己对应的模块文件,如 command; 4.通过ansible将模块或命令生成对应的临时py文…

OpenMMLab 实战营打卡 - 第 一 课

OpenMMLab 实战营打卡 - 第 一 课 复习下总忘的基础知识 卷积的通道数变化 前一层特征纬度(通道数)决定核的通道数 当前层输出的特征纬度,由核的数量决定 图像尺寸变化 padding 公式:H′H−K12pH^{\prime}H-K12 pH′H−K12p…

电源技术中的安森美 单通道电压电平转换器件FXLP34P5X 适合便携式应用方案

电源技术中的安森美 单通道电压电平转换器件FXLP34P5X 适合便携式应用方案 :输入转换器电源电压为VCC1,输出转换器电源电压为VCC。 该器件使用1.0V至3.6V的VCC值运行,主要用于要求超低功耗的便携式应用。内部电路由最小量的缓冲器级组成&…