题解 | #求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;
    }
}
全部评论

相关推荐

这是什么操作什么意思,这公司我服了...
斯派克spark:意思是有比你更便宜的牛马了
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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