码迷,mamicode.com
首页 > 其他好文 > 详细

6.2——面试题64. 求1+2+…+n

时间:2020-06-02 13:17:42      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:ase   面试题   question   problem   tco   round   mic   判断语句   com   

面试题64. 求1+2+…+n

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

 

1.解题思路

正整数累加,常规方法很简单。但是这里要求了不能使用乘除法、for,while(迭代)、if,else,switch,case,A?B:C(递归)。

但是这道题很容易想到:res = n + sunNums(n - 1) ,如果 n = 1 终止递归。那么难点就来了,怎么样才能不使用 if n == 1 来判断是否跳出

逻辑符的短路效应

if(A && B):若 A 为false,则 B 的判断不会执行(即短路),直接判定 A && B 为 false
if(A || B): 若 A 为 true ,则 B 的判断不会执行(即短路),直接判定 A || B 为 true

根据短路效应,对于如果 n = 1 终止递归可以应用短路效应,即 n > 1 and self.sumNums(n - 1) 也就是当 n = 1 时,不会执行 self.sumNums(n - 1) 终止递归

n > 1 and self.sumNums(n - 1) ==> if n > 1:
                    self.sumNums(n - 1)

 

2.源码

技术图片

6.2——面试题64. 求1+2+…+n

标签:ase   面试题   question   problem   tco   round   mic   判断语句   com   

原文地址:https://www.cnblogs.com/xiaoqichaoren/p/13030343.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!