考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默响起来一个声音:”乔戈里峰”
题目
每天一道剑指offer-求1+2+3+...+n https://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1?tpId=13&tqId=11200&tPage=3&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking
题目详述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
题目详解
思路
使用逻辑判断语,具体看代码 把(n-1)>=0放在最开始的判断上,利用&&操作符的性质,只有在(n-1)>=0的条件下才会执行后面的语句,temp = temp+n是每次进行累加的过程,temp是一个全局变量,可以保留累加和,最后的complex(n-1)>0用来进入到更深层次的递归层里面
代码
public class Solution {
public int temp = 0;
public int Sum_Solution(int n) {
complex(n);
return temp;
}
public int complex(int n)
{
boolean flag = (n-1) >= 0 && (temp = temp + n) > 0 && complex(n-1)>0;
return temp;
}
}
结束语
作者乔戈里亲历2019秋招,哈工大计算机本硕,百度java工程师,欢迎大家关注我的微信公众号:程序员乔戈里,公众号有3T编程资源,以及我和我朋友(百度C++工程师)在秋招期间整理的近200M的面试必考的java与C++面经,并有每天一道leetcode打卡群与技术交流群,欢迎关注。