求1+2+3+...+n(java版)
来源:互联网 发布:网络上个人信息 编辑:程序博客网 时间:2024/06/10 06:15
【题目描述】求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
【解题思路1】
//1.利用公式sum = n*(n+1)/2
//2.将上面的公式变形sum = (n^2 +n)/2
//3.利用指数函数和移位操作
【源码1】
public class Solution { public int Sum_Solution(int n) { return (int)(Math.pow(n, 2)+n)>>1; }}
【解题思路2】
//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)。
【源码2】
public int Sum_Solution(int n) { int sum = n; boolean ans = (n>0)&&((sum+=Sum_Solution(n-1))>0); return sum; }
【其他】
还有一些思路可以利用C++的特性来做。如
链接:https://www.nowcoder.com/questionTerminal/7a0da8fc483247ff8800059e12d7caf1来源:牛客网class Solution {public: int Sum_Solution(int n) { bool a[n][n+1]; return sizeof(a)>>1; }};
阅读全文
0 0
- 求1+2+3+...+n(java版)
- 求1+2+3+...+n java
- Java实现求 1+2+3+.....+n
- 求1+2+...+n(Java实现)
- 【剑指offer-Java版】46求 1 + 2 + 3 + ... + n
- LightOJ 1245 求(n/1+n/2+...+n/n)
- 1、求n!;2、求1!+2!+3!+......+n!之和
- 求1+2+3+....n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+。。。+N
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 求1+2+3+...+n
- 3164 质因数分解
- 自定义密码 输入界面
- 算法笔记 3.1 简单模拟
- 欢迎使用CSDN-markdown编辑器
- Spring源码分析之lazy-init属性的配置
- 求1+2+3+...+n(java版)
- sql server 安装到服务器上时出现的错误,以及怎么去解决之后有可能出现的一系列错误。
- JavaWeb中乱码问题
- 国内可用的API合集
- 删除对象的属性 delete的用法
- 基于HTC vive 的 VR场景遍历及环境互动项目规划
- 每天一个小算法之Shell排序(希尔排序)
- 项目实训第二周2
- C语言宏定义小结