Java实现求 1+2+3+.....+n

来源:互联网 发布:c语言全集 编辑:程序博客网 时间:2024/05/17 04:18

题目描述

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

我的第一反应是,这个题是不是想让用操作符 && || ^ 这些来做啊?但是我不会啊

然后我想Java里面有没有函数能够求呢,写了一版代码,但是我觉得这应该不是题目要的回答:

public class Solution {    public int Sum_Solution(int n) {        n = (int) (Math.pow(n, 2)+n)>>1;        return 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;    }}

思路:用逻辑与&&与短路特性实现递归终止

  boolean ans = (n>0)&&

当n>0时,会一直递归执行Sum_Solution(n-1)

直到n==0,开始return sum;


编程之美真的很喜欢考一些底层操作符的运算诶!看来找个时间要总结一下了。









原创粉丝点击