[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
if:12*9*10*4+12*9*10*3=7560
echo:12*4+12*3=84
if:if !a! equ 0是求100以内能被8整除的数共12个,(1,1,9)9,(0,1,9)10,(15 40 77 91)4,(6-1-3 0-3-4 7-8-9)3。
echo:要执行echo,if的条件就必须是true,外层执行12次,内层分别4,3.

TOP

16# Hello123World
层次是搞清楚了,结果请再想想。。。
***共同提高***

TOP

额 if是7660 少弄个else......

TOP

本帖最后由 jinzeyu 于 2011-4-30 07:33 编辑

啊 原来不允许写代码.

TOP

这是给新手准备的题目吗?

TOP

本帖最后由 yjstone 于 2011-5-3 17:49 编辑

我来说说看看对不对?对于bathome来说我算是新手吧,所以没有违反规定哟,呵呵!
if的执行次数为:100(最外层)+12(12个!a! equ 0条件成立)*10*9*(4+3)=7660 次
最外层的if 判断不管!a! equ 0是真或假都要进100次判断的,否则怎么知道是真是假呢?1至100的整数只有12个可整除8,所以if !a! equ 0 的判断语句后面条件为真的操作被执行了12次,因此if !a! equ 0 后面条件成立时运行的语句被执行了12*9*10(4+3),最内层要执行7+3次判断: for %%c in (15 40 77 91) 4次,for %%c in (6-1-3 0-3-4 7-8-9) 3次。
执行echo>nul操作的次数为:12*(4+2)=72次,每执行一次!a! equ 0条件判断的操作,只有4+2次条件成立也即6次的echo>nul操作。%%a%%b 组成由for /l %%a in (1,1,9) 和  for /l %%b in (0,1,9) 生成的1-99的数字字符,for %%c in (15 40 77 91) do if "%%a%%b" equ "%%c" 生成15 40 77 91四个数字字符来与1-99的数字字符相比较,很明显,有4 次条件成立。
而for %%c in (6-1-3 0-3-4 7-8-9)生成3个字符串:6-1-3  ; 0-3-4  和  7-8-9,for /f "tokens=1,3 delims=-" %%d in ("%%c") do if "%%a%%b" equ "%%d%%e" 生成3个数字符63;04;79 来与1-99的数字字符相比较,所以有2次条件成立。
1

评分人数

    • batman: 看来你学懂了。PB + 10

TOP

生成的1-99的数字字符

这里有误哦
***共同提高***

TOP

生成的1-99的数字字符

这里有误哦
batman 发表于 2011-5-3 19:25

的确是搞错了,正确的应该是10-99的数字字符,好在没有影响到答案的正确性。

TOP

返回列表