vbscript的骨灰级写法计算1到100的和
程序员文章站
2022-04-10 08:17:02
这篇日志完全是看了一篇日志后的启发,原文为:邪恶的eval和new function。 很少使用new array的方式来定义数组,没想到new array有这么一个妙用,...
这篇日志完全是看了一篇日志后的启发,原文为:邪恶的eval和new function。
很少使用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)'));
此外可以做很多类似的数学运算,比如以下几个
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的和
这些我们以往都通过循环进行的计算,现在都可以一行代码巧妙搞定,不得不叹服编程语言隐含的灵巧,编程的世界总有太多的东西等待我们去发现。
把上面的javascript代码改成vbs,就是vbs练习题所谓的骨灰级解法:
dim a(101)
execute(join(a,"s=s+i:i=i+1:"))
msgbox s
原文:
很少使用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)'));
此外可以做很多类似的数学运算,比如以下几个
复制代码 代码如下:
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的和
这些我们以往都通过循环进行的计算,现在都可以一行代码巧妙搞定,不得不叹服编程语言隐含的灵巧,编程的世界总有太多的东西等待我们去发现。
把上面的javascript代码改成vbs,就是vbs练习题所谓的骨灰级解法:
复制代码 代码如下:
dim a(101)
execute(join(a,"s=s+i:i=i+1:"))
msgbox s
原文:
推荐阅读
-
1.java小作业-计算1到100的整合-指定输入多少行输出就打印多少行-打印24小时60分钟每一分钟-重载基础练习-面向java编程初学者
-
从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器
-
使用C语言编写程序,计算N个整数的和(随机输入一个值,例如1到100之间所有整数的和)
-
使用python3编写程序,生成10个随机数,每个元素的值介于1到100之间,并计算所有元素的和、平均值。
-
vbscript的骨灰级写法计算1到100的和
-
Raptor怎么计算计算从1到100奇加偶减的数据总和?
-
Java 计算 1 到 1,000,000 的和
-
Java 计算 1 到 1,000,000 的和
-
1.java小作业-计算1到100的整合-指定输入多少行输出就打印多少行-打印24小时60分钟每一分钟-重载基础练习-面向java编程初学者
-
编程计算1到10的和