[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (24,1,89) do (
  4. set a=%%i
  5. if "!a:~-1!"=="0" echo %%i
  6. )
  7. pause
复制代码
不知是否正确

原理很简单,大于 23,那就是从 24 开始,小于 90 那就只能到 89
被5整除,尾数就必须是 0  或 5 ,而又要求是偶数,所以只需要检测从24到89产生的数列中哪些数最后一位是0的那就满足要求了


第四题:

列出1-100内所有能被2和5整除的偶数(也很简单喔~~~)
1

评分人数

    • wxcute: 把24,1,89的1换成2只检测偶数。加油PB + 2

TOP

原帖由 pusofalse 于 2008-9-18 17:50 发表
楼上的兄弟少了25 35 。。。
还有你的问题是既能被2整除,又要被5整除?
还是只是被2或5其中一个整除?


25,35……

是偶数吗?老师没教这个耶。。。

即可以被2整除,又可以被5整除,就是两个条件都要成立

比喻

10÷2=5
10÷5=2

TOP

献丑了。。。
  1. @echo off&set n=1
  2. :st
  3. set /a w=%random%%%100
  4. if not defined %w% (
  5. if "%n%" LEQ "90" (
  6. echo %w%
  7. set w=ok
  8. set /a n+=1
  9. goto st
  10. )
  11. )
  12. pause
复制代码
代码还是有待提高。。。

暂时想不到要问什么问题,等待楼下出题。。Sorry!

PS:真想不透现在的课本,乍就这样呢,当时读的时候,0 可不是自然数啊

[ 本帖最后由 lovelymorning 于 2008-9-19 13:18 编辑 ]

TOP

晕,漏了 set %w%=ok 百分号了,无语
  1. @echo off
  2. set n=1
  3. :st
  4. set /a w=%random%%%100
  5. if not defined %w% (
  6. if "%n%" LEQ "90" (
  7. echo %w%
  8. set %w%=ok
  9. set /a n+=1
  10. goto st
  11. )
  12. ) else goto st
  13. pause
复制代码
这个,不知行不

原先那个,我测试了好几次,都没出现重复,难道是RP较好?

这个,应该不会了吧?

TOP

回第六题:
  1. @echo off
  2. set /a n=%random%%%999+100
  3. echo %n%
  4. set /a h=%n:~0,1%+%n:~1,1%+%n:~-1%
  5. echo %h%
  6. pause
复制代码
不知这个合格不?

还是不知要问啥,老规矩,等楼下问吧



突然想到了,就俺来问吧

第七题:用 random 产生一个数,然后计算它的所有位数的相加和
比喻,产生了 1432  那就是 1+2+3+4=10
           产生了 4327 那就是 2+3+4+7=16

但 random 产生的数,位数又是不知的,又要计算它的和,难度应该不小吧。。。

楼下显高招。。。

[ 本帖最后由 lovelymorning 于 2008-9-19 23:02 编辑 ]

TOP

原帖由 pusofalse 于 2008-9-19 23:08 发表
set /a n=%random%%%999+100
这里n的值有可能大于有可能是个4位数哦,比如998+100=1098>999


版主想问题就是全面,唉……菜鸟,总是缺这少那的

请问一下,如果改成 899  ,可以么?

TOP

第七题:
  1. @echo off
  2. set h=%RANDOM%
  3. echo %h%
  4. set /a zh=%h:~0,1%+%h:~1,1%+%h:~2,1%+%h:~3,1%+%h:~4,1%
  5. echo %zh%
  6. pause
复制代码
请高手指点。。。

set 帮助中说到:在表达式中的任何非数字字符串键作为环境变量
名称,这些环境变量名称的值已在使用前转换成数字。如果指定
了一个环境变量名称,但未在当前环境中定义,那么值将被定为
零。

所以,如果 %RANDOM% 出来的是一位,那么后面的  %h:~1,1%   %h:~2,1%      %h:~3,1%       %h:~4,1%  将不存在,set 就定义为 0  ,那 0 跟任何数相加,都是没影响的

如果是产生了 5 位数,那这些变量都存在,也就可以正常相加了

又是一次投机取巧。。。

TOP

版主就是强大,啥时候才能有版主这样的水平呢,唉……

如果指定了一个环境变量名称,但未在当前环境中定义,那么值将被定为零

请教一下版主上面这一句

我用

set /a n=1+2+3+a

按照它说的,可以不用 % 将 变量 a 引起来,而上面那句说了

如果指定了一个环境变量名称,但未在当前环境中定义,那么值将被定为零

上面这一个, %a%  没有被定义,按照上面这一句,%a% 应该是 0 啊,怎么还是报错呢?

set a=
set /a n=1+2+3+a

就正确

是否上面那句说的,没有被定义是指,设置了这个变量,但没有给这个变量赋值就被set认为是 0 呢?

TOP

返回列表