找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25408|回复: 6

[原创] VBS普通青年 vs 文艺青年 vs 2B青年

[复制链接]
发表于 2011-11-9 21:55:07 | 显示全部楼层 |阅读模式
纯属娱乐,原文地址http://demon.tw/programming/vbs-normal-artistic-2b-youth.html

问题:请用VBS计算计算1到100的和。

普通青年:
  1. For i = 1 To 100
  2.     s = s + i
  3. Next
  4. MsgBox s
复制代码
文艺青年:
  1. Dim a(101)
  2. Execute(Join(a,"s=s+i:i=i+1:"))
  3. MsgBox s
复制代码
2B青年:
  1. 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)
复制代码
你属于哪一种?
发表于 2011-11-10 01:28:49 | 显示全部楼层
貌似是普通 2b 青年...
  1. 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""")
复制代码
纯批版:
普通青年
  1. @echo off
  2. echo -----------------------------------
  3. echo Fuck you and Fuck you and Fuck you.
  4. echo -----------------------------------
  5. pause
复制代码
文艺青年
  1. @more +1 %0&pause&exit
  2. -------------------------
  3. Fuck you again and again.
  4. -------------------------
复制代码
2b 青年
  1. @echo off
  2. @echo --------------------
  3. @echo Fuck you one by one.
  4. @echo --------------------
  5. @pause&exit
复制代码

评分

参与人数 2技术 +2 收起 理由
依山居 + 1 论坛巡查带头说的
PakTC + 1 很好

查看全部评分

发表于 2011-11-11 11:34:17 | 显示全部楼层
文艺青年果然看不懂。
发表于 2012-1-16 21:42:49 | 显示全部楼层
本帖最后由 applba 于 2012-1-18 22:20 编辑

数学青年
  1. result=(100+1)*100/2
  2. msgbox result
复制代码
神奇青年
  1. Dim result
  2. GetSum(100)
  3. MsgBox result

  4. Sub GetSum(max)
  5.         If Not IsNumeric(max) Then max=100
  6.         result=result+max
  7.         max=max-1
  8.         If max<1 Then Exit Sub
  9.         GetSum(max)
  10. End Sub
复制代码
发表于 2012-1-18 22:40:45 | 显示全部楼层
回复 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了~
发表于 2012-1-19 15:55:13 | 显示全部楼层
回复 2# CrLf


    有没有办法把4楼的递归sub改成递归Function。
发表于 2014-8-13 17:25:17 | 显示全部楼层
回复 6# applba
  1. Function add(sum, a)
  2.         If a = 0 Then
  3.                 add = sum
  4.         Else
  5.                 add = add(sum + a, a - 1)
  6.         End If
  7. End Function

  8. MsgBox add(0, 100)
复制代码
End If
End Function

MsgBox add(0, 100)[/code]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 02:29 , Processed in 0.015992 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表