[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
根据等比数列的公式:an=a1*q^(n-1)得出代码:试试是否符合楼主的要求,不考虑公比q为负的情况
  1. @echo off&setlocal enabledelayedexpansion
  2. :begin
  3. set "a1="&set /p a1=请输入首数a1:&if "!a1!"=="" goto :eof
  4. set /p q=请输入公比q:
  5. set /p var=请输入要判断的数:
  6. echo ======================================
  7. set/a a2=a1*q&echo\数列如下:&echo !a1!&echo !a2!
  8. if !a1! equ !var! (echo !var!属于数列第1项&goto begin) else if !a2! equ !var! echo !var!属于数列第2项&goto begin
  9. set q1=%q%
  10. for /l %%a in (3,1,30) do (
  11. set/a q=q*q1,an=a1*q&echo !an!
  12. if !an!==!var! (echo !var!属于数列第%%a项&goto begin) else if !an! gtr !var! (echo !var!不属于此数列&goto begin)
  13. )
复制代码
for /l %%a in (3,1,!var!) 改为 for /l %%a in (3,1,30)

[ 本帖最后由 inittab 于 2009-5-15 09:49 编辑 ]

TOP

!var!是个像征的值. 找到需要的值后会马上退出for/l 循环., 正如您所说.循环不会超过30次.
如果改为30也是一样的.

TOP

多谢。测试了确实如此。之前还真没注意这个问题。

for /l %%i in (1,1,1000000) do echo %%i&goto :eof

只显示一个1 .
实际是等上一会儿,说明它是循环了1000000次的。
很难理解,难道echo %%i 不参与循环了?请高手指点一下。

[ 本帖最后由 inittab 于 2009-5-13 23:15 编辑 ]

TOP

的确,竟然没发现~~ 已改正,多谢!

TOP

返回列表