剑指offer(50):计算1+2+...+n
来源:互联网 发布:淘宝店招免费制作 编辑:程序博客网 时间:2024/06/01 20:57
题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
分析
解题思路:直接使用公式
不能用判断语句的关键字,但是想到 || 和 && 有个特性,如果 || 前面一个为真,则后面的不会再计算,如果 && 前面一个为假,则后面的不会再计算。
逻辑与的短路特性实现递归终止。
牛客AC:
/**1.需利用逻辑与的短路特性实现递归终止。 2.当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后直接返回0;3.当n>0时,执行sum+=Sum_Solution(n-1),实现递归计算Sum_Solution(n)。**/public class Solution { public int Sum_Solution(int n) { int sum = n; boolean ans = (n > 0) && ((sum += Sum_Solution(n - 1)) > 0); return sum; }}
0 0
- 剑指offer(50):计算1+2+...+n
- 剑指offer:第46题计算1+2+3+……+n;
- (重要)剑指offer 46-求1+2+..N
- 剑指offer(44)-求1+2+3+...+n
- 剑指offer:求1+2+...+n(c/c++)
- 【剑指offer】无聊的1+2+...+n
- 《剑指offer》求1+2+3+...+n
- 剑指offer--求1+2+3+...+n
- 剑指offer-求1+2+3+...+n
- [剑指offer]求和1+2+3+....n
- 剑指offer:求1+2+3+...+n
- 《剑指offer》-求1+2+3+...+n
- 剑指Offer: 求1+2+3+...+n
- 【剑指Offer】求1+2+3+...+n
- 剑指offer---求1+2+3+...+n
- 剑指Offer 1+2+...+n 继承法实现
- 【剑指offer】无聊的1+2+...+n
- 剑指offer 求1+2+3+...+n
- Linux内核中的 struct class 简介
- 动态规划:入门绝佳资料
- const学习
- 6.旋转数组的最小数字(做第二遍时感觉仍有有难度)
- 86-中间代码opcode的执行
- 剑指offer(50):计算1+2+...+n
- 87-代码的加密与解密
- 88-zend_execute的具体执行过程
- opencv、matlab查看函数的定义、封装
- STM32之USART串口接收数据处理
- vs 2015卸载
- 运行VS2010出现无效的许可证数据
- splay旋转模板
- 89-变量的引用与计数规则