【启发】不用循环计算1到100的和

很少使用new Array的方式来定义数组,没想到new Array有这么一个妙用,通过new Array(n)我们可以创建n个空元素,同时也就在n个元素中间存在n-1个空白,通过join,我们可以将一些东西放在这些空白中间从而组成我们需要的特殊串,这不禁启发了我的灵感,这个特点可以使我不通过循环就可以很容易的实现一个“有规律元素的连续运算”。比如计算1-100的数值的和。以往我们需要从1循环到100然后求和,但利用数组的这个特性我们可以通过简单的一行代码搞定,代码如下:

var i=0,sum=eval('0'+new Array(101).join('+(++i)'));
var i=0,sum=eval('0'+new Array(101).join('+(++i)'));

此外可以做很多类似的数学运算,比如以下几个

eval('0'+new Array(11).join('+Math.pow(++i,2)'))  //计算1-10的平方和 
eval('0'+new Array(100/2).join('+(i+=2)'))  //计算2+4+6+...100的和
eval('0'+new Array(11).join('+Math.pow(++i,2)')) //计算1-10的平方和<br/>eval('0'+new Array(100/2).join('+(i+=2)')) //计算2+4+6+...100的和

这些我们以往都通过循环进行的计算,现在都可以一行代码巧妙搞定,不得不叹服编程语言隐含的灵巧,编程的世界总有太多的东西等待我们去发现。学无止境,努力吧!

转载于:https://www.cnblogs.com/interdrp/archive/2009/03/10/1407723.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值