标题: [原创] VBS普通青年 vs 文艺青年 vs 2B青年 [打印本页]
作者: Demon 时间: 2011-11-9 21:55 标题: VBS普通青年 vs 文艺青年 vs 2B青年
纯属娱乐,原文地址http://demon.tw/programming/vbs-normal-artistic-2b-youth.html
问题:请用VBS计算计算1到100的和。
普通青年:- For i = 1 To 100
- s = s + i
- Next
- MsgBox s
复制代码
文艺青年:- Dim a(101)
- Execute(Join(a,"s=s+i:i=i+1:"))
- MsgBox s
复制代码
2B青年:- MsgBox (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50 + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 61 + 62 + 63 + 64 + 65 + 66 + 67 + 68 + 69 + 70 + 71 + 72 + 73 + 74 + 75 + 76 + 77 + 78 + 79 + 80 + 81 + 82 + 83 + 84 + 85 + 86 + 87 + 88 + 89 + 90 + 91 + 92 + 93 + 94 + 95 + 96 + 97 + 98 + 99 + 100)
复制代码
你属于哪一种?
作者: CrLf 时间: 2011-11-10 01:28
貌似是普通 2b 青年...- CreateObject("WScript.Shell").RUN("cmd /v /q /c ""(set str=0&for /l %a in (1 1 100) do set str=!str!+%a)&set /a ""n=!str!""&pause>nul""")
复制代码
纯批版:
普通青年- @echo off
- echo -----------------------------------
- echo Fuck you and Fuck you and Fuck you.
- echo -----------------------------------
- pause
复制代码
文艺青年- @more +1 %0&pause&exit
- -------------------------
- Fuck you again and again.
- -------------------------
复制代码
2b 青年- @echo off
- @echo --------------------
- @echo Fuck you one by one.
- @echo --------------------
- @pause&exit
复制代码
作者: Hello123World 时间: 2011-11-11 11:34
文艺青年果然看不懂。
作者: applba 时间: 2012-1-16 21:42
本帖最后由 applba 于 2012-1-18 22:20 编辑
数学青年- result=(100+1)*100/2
- msgbox result
复制代码
神奇青年- Dim result
- GetSum(100)
- MsgBox result
-
- Sub GetSum(max)
- If Not IsNumeric(max) Then max=100
- result=result+max
- max=max-1
- If max<1 Then Exit Sub
- GetSum(max)
- End Sub
复制代码
作者: applba 时间: 2012-1-18 22:40
回复 3# Hello123World
分析一下该段代码:
Dim a(101)
Execute(Join(a,"s=s+i:i=i+1:"))
MsgBox s
他定义一个了一个一维数组,所有元素的值都是Empty。
Join(a,"s=s+i:i=i+1:")连接后带得到的字符串就是 "s=s+i:i=i+1:s=s+i:i=i+1:s=s+i:i=i+1:……"
然后再excute一下上面的字符串就ok了~
作者: applba 时间: 2012-1-19 15:55
回复 2# CrLf
有没有办法把4楼的递归sub改成递归Function。
作者: bigbigsunrise 时间: 2014-8-13 17:25
回复 6# applba - Function add(sum, a)
- If a = 0 Then
- add = sum
- Else
- add = add(sum + a, a - 1)
- End If
- End Function
-
- MsgBox add(0, 100)
复制代码
End If
End Function
MsgBox add(0, 100)[/code]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |