LCR 189. 设计机械累加器
请设计一个机械累加器,计算从 1、2… 一直累加到目标数值 target 的总和。注意这是一个只能进行加法操作的程序,不具备乘除、if-else、switch-case、for 循环、while 循环,及条件判断语句等高级功能。
示例 1:
输入: target = 5
输出: 15
示例 2:
输入: target = 7
输出: 28
提示:
1 <= target <= 10000
不能使用乘除、if-else、switch-case、for、while、条件判断
排除这些后只能想到位运算,这就想到了用位运算代替乘法然后用求和公式,需要手动展开乘数二进制
另一种方法,因为禁止了循环语句,所以想要遍历只有递归了,但是条件判断语句也被禁止
递归无法返回,这时我们需要一种手段在target=1时能结束递归
这时想到&&的短路效应,只要&&前的值为0就不会执行后面内容
1 | class Solution { |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.




