原题链接:https://leetcode-cn.com/problems/qiu-12n-lcof/

题目描述

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

思路分析

本题抛开要求限制,算是入门级题目,但是加上条件限制却变成了一道思维拓展题,不涉及任何算法知识。这里给出两种解决方案:

方法一:递归法,递归需要判断终止条件,除了 if 语句,还有 switch,逻辑运算符,进而可以突破 if 的限制,达到解题目的;

方法二:等差数列求和公式
S n = ( 1 + n ) ∗ n 2 S_{n}=\frac{(1+n)*n}{2} Sn​=2(1+n)∗n​
这里出现了乘除法,现在就需要想方设法找道乘除法的替代方案,除法可以用位运算替代;乘法呢?将分子展开即有
n 2 + n n^2 + n n2+n
平方可以调用库函数 pow

参考代码

  • 方法一:递归法,其时间复杂度为 O ( n ) O(n) O(n) ,空间复杂度为 O ( 1 ) O(1) O(1) 。
class Solution {public int sumNums(int n) {int sum = n;boolean flag = n > 0 && (sum += sumNums(n - 1)) > 0;return sum;}
}

运行结果如下:

  • 方法二:等差数列公式,其时间复杂度为 O ( 1 ) O(1) O(1) ,空间复杂度为 O ( 1 ) O(1) O(1) 。
class Solution {public int sumNums(int n) {return ((int)Math.pow(n, 2) + n) >> 1;}
}

运行结果如下:

【Leetcode刷题】题64. 求1+2+…+n相关推荐

  1. LeetCode刷SQL题

    https://leetcode-cn.com/problemset/database/ 题目都是leetcode 上了可以点击题目会有相应的链接 由于个人比较喜欢用开窗函数,所以都优先用了开窗 ,当 ...

  2. LeetCode 剑指Offer 64.求1,2到n的和, 不使用循环/判断及乘除

    题目 剑指 Offer 64. 求1+2+-+n 求 1+2+-+n ,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 示例 1: ...

  3. 【组队学习】【31期】LeetCode 刷题

    LeetCode 刷题 航路开辟者:杨世超 领航员:刘军 航海士:杨世超.李彦鹏.叶志雄.赵子一 基本信息 开源内容:https://github.com/itcharge/LeetCode-Py 开 ...

  4. 【组队学习】【33期】LeetCode 刷题

    Leetcode刷题 航路开辟者:杨世超 领航员:肖桐 航海士:刘军.孙子涵.汪超.赵子一 基本信息 开源内容:https://github.com/itcharge/LeetCode-Py 开源内容 ...

  5. leetcode刷题随笔数独是否合法利用dfs求数独的解

    最近看了一两篇关于leetcode刷题的总结,大体意思就是尽量不要使用ide(lll¬ω¬)然后默写代码保证bug free,这tm就让人很蒙蔽了,lz一直是用visual studio ,有时候程序 ...

  6. C#LeetCode刷题-剑指Offer

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-剑指Offer | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode剑指Offer ...

  7. C#LeetCode刷题-树

    树篇 # 题名 刷题 通过率 难度 94 二叉树的中序遍历 61.6% 中等 95 不同的二叉搜索树 II 43.4% 中等 96 不同的二叉搜索树 51.6% 中等 98 验证二叉搜索树 22.2% ...

  8. C#LeetCode刷题-位运算

    位运算篇 # 题名 刷题 通过率 难度 78 子集 67.2% 中等 136 只出现一次的数字 C#LeetCode刷题之#136-只出现一次的数字(Single Number) 53.5% 简单 1 ...

  9. C#LeetCode刷题-数组

    数组篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 43.1% 简单 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组 ...

  10. 【恋上数据结构】复杂度知识以及LeetCode刷题指南

    基础知识 什么是算法? 如何评判一个算法的好坏? 大O表示法(Big O) 对数阶的细节 常见的复杂度 多个数据规模的情况 LeetCode刷题指南 斐波那契数列复杂度分析 斐波那契数列 - 递归 斐 ...

最新文章

  1. 【深度学习】(5) 简单网络,案例:服装图片分类,附python完整代码
  2. Linux图形分区编辑器 GParted Live 1.0 Beta 发布
  3. php 下载脱离服务器,php – 强制从外部服务器下载并重命名
  4. 一个专业搜索公司关于lucene+solar资料
  5. SharePoint 2010 网站模板要求在网站集中激活功能
  6. android 调出键盘表情_如何在Android的G板键盘中搜索表情符号和GIF | MOS86
  7. commit git 删除文件夹_从Git提交中删除文件
  8. 时间操作(JavaScript版)—页面显示格式:年月日星期几
  9. 腾讯云和阿里云mysql性能对比_阿里云腾讯云服务器官方性能及实际体验对比
  10. Linux命令:ssh命令
  11. 【硬件】电容和电感串联接地的作用
  12. 计算机装系统找不到硬盘分区,系统安装找不到现有分区,小编教你如何解决系统安装找不到现有分区...
  13. 嘴里又苦又干,还有异味
  14. Android禁止多点触控
  15. 实时计算与SparkSteaming的对比
  16. mount挂载硬盘出错 linux 下分区格式为lvm
  17. 5G时代下的室内定位方案越来越精准-室内定位方案-新导智能
  18. freeRTOS 时间管理
  19. Java编程怎么打印输出第n项斐波拉契数
  20. Springboot项目WebSocket服务中不能注入(@Autowired和@Resoure)报null错误

热门文章

  1. scott.sql脚本 mysql_数据库scott脚本
  2. 产品读书《魔鬼经济学1:揭示隐藏在表象之下的真实世界》
  3. 王志东预言中国门户网站大趋势
  4. qt listwidget 关键字颜色_seo关键字优化工具如何收费
  5. BEIT: BERT Pre-Training of Image Transformers论文解读
  6. 计算机组装与维修教学重点,计算机组装与维修教学大纲.pdf
  7. vue/html+qrcode生成付款二维码(前端部分)
  8. SpringBoot集成TkMapper
  9. 阿迪、耐克过去式,李宁、安踏、特步现在时
  10. python证书微软认证_怎样考取微软工程师?