[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 12# vicp7764


    set /a 是什么意思
我用set sum=sum+%%i 就不对  要set /a sum=sum+%%i 才对 ,这是为什么

TOP

回复 129# bat爱好者
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set num=0230056
  4. set n=0
  5. :loop
  6. if "!num:~%n%,1!" equ "0" (
  7.   set /a n+=1
  8.   goto loop
  9. )
  10. set num=!num:~%n%!
  11. echo %num%
  12. pause
复制代码
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

回复 12# vicp7764


    假如他输入023呢,好像要写一个来排除0,就好像输入023,计算机只读入23.。。。但是我想不到怎样解决

TOP

本帖最后由 zzpsongs 于 2013-1-1 15:08 编辑
  1. @echo off
  2. :on
  3. echo 1+2+……+N=?
  4. set/p n=[请输入N值]^>
  5. set/a fin=%n%*(%n%+1)/2
  6. echo 1+2+……+N=%fin% (N=%n%)
  7. echo ------------------------------
  8. goto on
复制代码
回帖后才发现,原来是for的应用。。。。

TOP

@echo off
setlocal enabledelayedexpansion
for /l %%a in (1 1 100) do (
   set "str=!str!%%a+"
)
set /a str=%str:~0,-1%
echo %str%

pause
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

  1. @echo off
  2. set num=0
  3. :main
  4. set /p n=请输入最终要累加到的数
  5. if n leq 1 goto error
  6. for /l %%i in (1,1,%n%) do (set /a num=num+%%i )
  7. echo sum=%num%
  8. pause & exit
  9. :error
  10. echo 数字输入不能小于1
  11. pause
  12. cls
  13. goto main
  14. pause
复制代码
无所谓而无所为 无所谓而无所不为

TOP

头尾各一半 × 项数
  1. @echo off
  2. set start=1
  3. set n=100
  4. set different=1
  5. echo 公差:%different%
  6. echo 项数:%n%
  7. echo 头:%start%
  8. set /a last = %start%+%n%*%different%-1
  9. echo 尾:%last%
  10. set /a sum=(%start%+%last%)*%n%/2
  11. echo 和:%sum%
  12. pause
复制代码

TOP

1
  1. @echo off
  2. for /l %%a in (1,1,100) do set /a a+=%%a
  3. echo %a%
复制代码
2
  1. @echo off
  2. set /p n=请输入n的值:
  3. for /l %%a in (1,1,%n%) do set /a a+=%%a
  4. echo %a%
复制代码

TOP

长见识了,的确长见识了

TOP

回复 121# jains521


我猜这题的本意是让大家练习for循环的使用,而不是考察等差数列

TOP

  1. @echo off
  2. ::1--100的和
  3. set /a "totle=(1+100)*100/2"
  4. set /p=1+...+100的结果是%totle%<nul
  5. pause>nul
复制代码
  1. @echo off
  2. ::1+...+n的和
  3. set /p n=计算1+...+n, n=
  4. set /a "totle=(1+n)*n/2"
  5. set /p=1+...+%n%的结果是%totle%<nul
  6. pause>nul
复制代码

TOP

  1. @echo off
  2. set p=1
  3. set i=2
  4. set /p n=请输入一个数字:
  5. :1
  6. set /a p=p+i
  7. if %i% lss %n% (
  8.    set /a i=%i%+1&goto 1
  9.    ) else (
  10.    echo %p%
  11. )
  12. pause
复制代码

TOP

回复 3# ieutk

不明白后面为>nul   加了之后输入没有显示呀?
    echo %res%|findstr "^[1-9][0-9]*$">nul

TOP

回复 20# dishuo


    思路很重要,很多人看到这题目只会想到用for和goto,这楼的兄弟头脑与从不同啊。

TOP

回复 20# dishuo


    不错,利用数学公式作为变量

TOP

返回列表