vbscript的骨灰級(jí)寫法計(jì)算1到100的和
更新時(shí)間:2012年05月23日 00:32:05 作者:
vbscript的骨灰級(jí)寫法計(jì)算1到100的和的代碼,實(shí)現(xiàn)的比較不錯(cuò)
這篇日志完全是看了一篇日志后的啟發(fā),原文為:邪惡的eval和new Function。
很少使用new Array的方式來(lái)定義數(shù)組,沒(méi)想到new Array有這么一個(gè)妙用,通過(guò)new Array(n)我們可以創(chuàng)建n個(gè)空元素,同時(shí)也就在n個(gè)元素中間存在n-1個(gè)空白,通過(guò)join,我們可以將一些東西放在這些空白中間從而組成我們需要的特殊串,這不禁啟發(fā)了我的靈感,這個(gè)特點(diǎn)可以使我不通過(guò)循環(huán)就可以很容易的實(shí)現(xiàn)一個(gè)“有規(guī)律元素的連續(xù)運(yùn)算”。比如計(jì)算1-100的數(shù)值的和。以往我們需要從1循環(huán)到100然后求和,但利用數(shù)組的這個(gè)特性我們可以通過(guò)簡(jiǎn)單的一行代碼搞定,代碼如下:
var i=0,sum=eval('0'+new Array(101).join('+(++i)'));
此外可以做很多類似的數(shù)學(xué)運(yùn)算,比如以下幾個(gè)
eval('0'+new Array(11).join('+Math.pow(++i,2)')) //計(jì)算1-10的平方和
eval('0'+new Array(100/2).join('+(i+=2)')) //計(jì)算2+4+6+...100的和
這些我們以往都通過(guò)循環(huán)進(jìn)行的計(jì)算,現(xiàn)在都可以一行代碼巧妙搞定,不得不嘆服編程語(yǔ)言隱含的靈巧,編程的世界總有太多的東西等待我們?nèi)グl(fā)現(xiàn)。
把上面的JavaScript代碼改成VBS,就是VBS練習(xí)題所謂的骨灰級(jí)解法:
Dim a(101)
Execute(Join(a,"s=s+i:i=i+1:"))
MsgBox s
原文:http://demon.tw/programming/no-loop-calculate-1-100-sum.html
很少使用new Array的方式來(lái)定義數(shù)組,沒(méi)想到new Array有這么一個(gè)妙用,通過(guò)new Array(n)我們可以創(chuàng)建n個(gè)空元素,同時(shí)也就在n個(gè)元素中間存在n-1個(gè)空白,通過(guò)join,我們可以將一些東西放在這些空白中間從而組成我們需要的特殊串,這不禁啟發(fā)了我的靈感,這個(gè)特點(diǎn)可以使我不通過(guò)循環(huán)就可以很容易的實(shí)現(xiàn)一個(gè)“有規(guī)律元素的連續(xù)運(yùn)算”。比如計(jì)算1-100的數(shù)值的和。以往我們需要從1循環(huán)到100然后求和,但利用數(shù)組的這個(gè)特性我們可以通過(guò)簡(jiǎn)單的一行代碼搞定,代碼如下:
復(fù)制代碼 代碼如下:
var i=0,sum=eval('0'+new Array(101).join('+(++i)'));
此外可以做很多類似的數(shù)學(xué)運(yùn)算,比如以下幾個(gè)
復(fù)制代碼 代碼如下:
eval('0'+new Array(11).join('+Math.pow(++i,2)')) //計(jì)算1-10的平方和
eval('0'+new Array(100/2).join('+(i+=2)')) //計(jì)算2+4+6+...100的和
這些我們以往都通過(guò)循環(huán)進(jìn)行的計(jì)算,現(xiàn)在都可以一行代碼巧妙搞定,不得不嘆服編程語(yǔ)言隱含的靈巧,編程的世界總有太多的東西等待我們?nèi)グl(fā)現(xiàn)。
把上面的JavaScript代碼改成VBS,就是VBS練習(xí)題所謂的骨灰級(jí)解法:
復(fù)制代碼 代碼如下:
Dim a(101)
Execute(Join(a,"s=s+i:i=i+1:"))
MsgBox s
原文:http://demon.tw/programming/no-loop-calculate-1-100-sum.html
您可能感興趣的文章:
相關(guān)文章
用vbs實(shí)現(xiàn)定時(shí)運(yùn)行web文件的方法
用vbs實(shí)現(xiàn)定時(shí)運(yùn)行web文件的方法...2007-03-03vbs 獲取當(dāng)前目錄文件數(shù)量的代碼(不包括子文件夾中的)
有時(shí)候我們需要獲取當(dāng)前目錄下有多少個(gè)文件,那么就可以參考下面的代碼2013-09-09vbs實(shí)現(xiàn)右鍵菜單中添加CMD HERE
cmdhere安裝,使你在任何目錄下直接進(jìn)入改目錄的CMD狀態(tài),需要的朋友可以參考下2008-05-05使用 iisweb.vbs 刪除網(wǎng)站的方法(支持批量刪除)
有時(shí)候我們需要批量刪除網(wǎng)站,如果一個(gè)一個(gè)手工刪除肯定太慢了,這里分享個(gè)命令,通過(guò)iisweb.vbs批量刪除網(wǎng)站2014-07-07