题解 | #求1+2+3+...+n#

求1+2+3+...+n

http://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1

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

public class Solution {
    public int Sum_Solution(int n) {
        //for循环
        int s=0;
        for(int i=0;i<=n;i++){
            s+=i;
        }
        return s;  
    }
}

版本2:

public class Solution {
    public int Sum_Solution(int n) {
        //公式
        return n*(n+1)/2;

    }
}

版本3:

public class Solution {
    public int Sum_Solution(int n) {
        return (int)(n*n+n)/2;
    }
}

版本4:

public class Solution {
    public int Sum_Solution(int n) {
        //Math.pow(底数,几次方)
        //>>带符号右移(相当于除以2)
        return (int)(Math.pow(n,2)+n)>>1;
    }
}

版本5:

public class Solution {
    public int Sum_Solution(int n) {
        //递归
        if (n == 1) return n;
        return n + Sum_Solution(n-1);
    }
}

版本6:

public class Solution {
    public int Sum_Solution(int n) {
        //递归 **用?:条件运算符代替if**
        return (n==1) ? 1 : (n+Sum_Solution(n-1));
    }
}

版本7:

public class Solution {
    public int Sum_Solution(int n) {
        //递归 **用&&代替if**(&&直到前面语句执行错误时,才停止执行下一个语句)
        boolean x = (n > 0) && ((n += Sum_Solution(n-1))>0);
        return n;
    }
}
全部评论

相关推荐

丿南烟丶:黑白模板吧,不要这样花哨的。 主要成就太空了,和获奖融在一起,写一两行就行了。 职业技能不要这样排,就传统的掌握精通什么什么然后举例补充的一些重要技术点。 自我介绍说实话也没啥用,可以删了。 把自己的两个项目方案细节补充上去,为什么这样设计,怎么设计,成果是什么按star法则来写 你要引导面试官来问你的技能和项目,你的获奖和自我介绍别人可能看都不看一眼或者不太在乎,重要的是展示你能干活的能力
点赞 评论 收藏
分享
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务