吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1651|回复: 5
收起左侧

[Java 转载] 对常用从1+N的方法操作

[复制链接]
TeMoon 发表于 2021-1-5 10:47
在知乎上看到一篇文章,说如果按照代码行数计算工资,于是大家一堆骚操作……


然后在某天闲的,看了一下我公司的代码,想着优化一哈,减少代码行数,于是就针对从1开始累加到N的方法处理一下~~~


[Java] 纯文本查看 复制代码
 
    public static int sum(int val) {
        int sum = 0;
        for (int i = 1; i <= val; i++) {
            sum += i;
        }
        return sum;
    }


那首先把括号干掉吧!

[Java] 纯文本查看 复制代码
  public static int sum(int val) {
        int sum = 0;
        for (int i = 1; i <= val; i++)
            sum += i;
        return sum;
    }       


还是感觉有点多呀,是不是因为循环的原因呢,要不大胆考虑一下

不用循环表达呢?

那要不考虑一下递归,嗯,最后结果写出这么个玩意

[Java] 纯文本查看 复制代码
public static int sum(int val) {
        if (val == 1) 
            return 1;
        else
            return val + sum(val - 1); 
    }


感觉和之前用for循环没多大变化呀,

难道就没有办法继续简化了么,,,,

从1开始加数字,那么1+2+3+4……这种有啥规律么,想想曾经老师教我们这个玩意的时候!

纠结,忘差不多了,

那就问百度吧;

哟西,原来这种计算方式叫等差数列呀,涨姿势了。

咦,还有个高级的名字叫高斯(听说过这个人)求和????

原来等差数列还能这么算呀,明白了,那就用代码跑一哈看看~~~

[Java] 纯文本查看 复制代码
 public static int sum(int val) {
       return (val+1)*val/2;
   }


完美~ 就这样吧!


免费评分

参与人数 2吾爱币 +1 热心值 +1 收起 理由
zhaoyf18 + 1 用心讨论,共获提升!
Zimin + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

DQQQQQ 发表于 2021-1-5 11:31
我以为会有神马惊天操作呢。。。。。。。。第一个和第二个都是一回事。。。迭代那个你懂得。。。。最后简直。。。。。。。
 楼主| TeMoon 发表于 2021-1-5 11:49
DQQQQQ 发表于 2021-1-5 11:31
我以为会有神马惊天操作呢。。。。。。。。第一个和第二个都是一回事。。。迭代那个你懂得。。。。最后简直 ...

大佬,这只是我一个小菜鸟对自己的代码的一点点优化记录,别打击我
namedlxd 发表于 2021-1-5 13:35
zhaoyf18 发表于 2021-1-5 14:25
喜欢这样的思考。
DQQQQQ 发表于 2021-2-5 15:47
TeMoon 发表于 2021-1-5 11:49
大佬,这只是我一个小菜鸟对自己的代码的一点点优化记录,别打击我

好吧,(╯▽╰),我错了。有各种想法挺好的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 19:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表