对常用从1+N的方法操作
在知乎上看到一篇文章,说如果按照代码行数计算工资,于是大家一堆骚操作……然后在某天闲的{:1_926:},看了一下我公司的代码,想着优化一哈,减少代码行数,于是就针对从1开始累加到N的方法处理一下~~~
public static int sum(int val) {
int sum = 0;
for (int i = 1; i <= val; i++) {
sum += i;
}
return sum;
}
那首先把括号干掉吧!
public static int sum(int val) {
int sum = 0;
for (int i = 1; i <= val; i++)
sum += i;
return sum;
}
还是感觉有点多呀,是不是因为循环的原因呢,要不大胆考虑一下{:1_904:}
不用循环表达呢?
那要不考虑一下递归,嗯,最后结果写出这么个玩意
public static int sum(int val) {
if (val == 1)
return 1;
else
return val + sum(val - 1);
}
感觉和之前用for循环没多大变化呀,:wwqwq
难道就没有办法继续简化了么,,,,
从1开始加数字,那么1+2+3+4……这种有啥规律么,想想曾经老师教我们这个玩意的时候!
纠结,忘差不多了,
那就问百度吧;
哟西,原来这种计算方式叫等差数列呀,涨姿势了。:eee
咦,还有个高级的名字叫高斯(听说过这个人)求和????:eee:eee:eee
原来等差数列还能这么算呀,明白了,那就用代码跑一哈看看~~~
public static int sum(int val) {
return (val+1)*val/2;
}
完美~ 就这样吧!:lol
我以为会有神马惊天操作呢。。。。。。。。第一个和第二个都是一回事。。。迭代那个你懂得。。。。最后简直。。。。。。。 DQQQQQ 发表于 2021-1-5 11:31
我以为会有神马惊天操作呢。。。。。。。。第一个和第二个都是一回事。。。迭代那个你懂得。。。。最后简直 ...
{:1_907:}大佬,这只是我一个小菜鸟对自己的代码的一点点优化记录,别打击我{:1_937:} 递归写法不如循环 喜欢这样的思考。 TeMoon 发表于 2021-1-5 11:49
大佬,这只是我一个小菜鸟对自己的代码的一点点优化记录,别打击我
好吧,(╯▽╰),我错了。有各种想法挺好的
页:
[1]