剑指 Offer 64. 求1+2+…+nbbahttps://leetcode.cn/problems/qiu-12n-lcof/
| 2023-8-7
0  |  阅读时长 0 分钟
Date
Mar 31, 2023
need_review
need_review
type
剑指 Offer(第 2 版)
undo
undo
难度
中等
求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
示例 1:
输入: n = 3 输出: 6 示例 2:
输入: n = 9 输出: 45
限制:
1 <= n <= 10000

python

  1. 由于无法使用for循环和乘除法来进行数字的累加, 但是递归可以起到相同的效果
  1. 不能使用if来判断n是否到1, 可以使用and来代替.
    1. 当and前面为True时, 执行and后面的代码
    2. 当and前面为False时, 不执行and后面的代码
    3. 所以当n=0时, 直接return n → 递归结束
 

C++

  1. c++中>>和<<两个运算符
    1. a>>b: 右移运算, 将a的二进制向右移动b位, << 是左移.
      1. a<<1 = a*2
      1. a>>1 = a/2
      1. 1<<a =
  1. 数组的大小可以当乘法来用, 布尔类型的占用一个字节
    1. eg: bool a[2][3]; sizeof(a) = 6
  • Giscus
目录