Board logo

标题: 批处理计算1+2+3+4+...+100=? [打印本页]

作者: youxi01    时间: 2008-1-3 23:02     标题: 批处理计算1+2+3+4+...+100=?

计算从1到100的数字之和
要求:
不能直接echo,必须用程序计算出结果;

拓展提高:计算1+2+3+4+....+n=?
这里的n为用户输入的数字。

请用code标签把代码部分首尾括起来。

Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html

参考:批处理之家论坛使用常见问题FAQ
http://bbs.bathome.net/thread-3473-1-1.html
作者: 小竹    时间: 2008-1-3 23:09

  1. @echo off
  2. set n=1
  3. set /p n=input a number!
  4. for /l %%i in (1,1,%n%) do (
  5.     set /a sum+=%%i
  6. )
  7. echo %sum%
  8. pause
复制代码

作者: ieutk    时间: 2008-1-4 13:46

说一下

set n=1这句在你的代码中没有起到作用,可以不加
区分数字跟其它字符可以用这个代码
  1. echo %n%|findstr "^[1-9][0-9]*$">nul
复制代码

作者: 随风    时间: 2008-1-4 13:59

原帖由 ieutk 于 2008-1-4 13:46 发表
说一下

set n=1这句在你的代码中没有起到作用,可以不加
区分数字跟其它字符可以用这个代码echo %n%|findstr "^[1-9][0-9]*$">nul

不明白为何要这样写?
echo %n%|findstr "^[0-9]*$">nul
这样不行么?
作者: ieutk    时间: 2008-1-4 14:25

不明白为何要这样写?
echo %n%|findstr "^[0-9]*$">nul
这样不行么?


你这样写的话呢第一个字符就有可能是0

[ 本帖最后由 ieutk 于 2008-1-4 14:27 编辑 ]
作者: 随风    时间: 2008-1-4 14:40

原来是要排除0开头的.

[ 本帖最后由 随风 于 2008-1-7 12:34 编辑 ]
作者: fjcqlcx    时间: 2008-2-6 16:46     标题: 回复 2# 的帖子

应该设sum的初始值为0

set sum=0
作者: duanxianfell    时间: 2008-3-17 22:21

@echo off
for /l %%a in (1,1,100) do set /a b+=%%a
echo %b%
pause
作者: xiaoxx    时间: 2008-4-27 19:29

echo %n%|findstr "^[1-9][0-9]*$">nul

经典
作者: wjta    时间: 2008-4-27 20:49

不太明白...呵呵.
作者: lily33300    时间: 2008-4-28 18:16

本人是刚接触BAT的,2楼可以解释一下您写这个BAT的方法吗?THANK YOU!!
作者: vicp7764    时间: 2008-4-28 21:03

@echo off    关闭回显
    set n=1      设置一个变量n ,他的值为1 (PS,这样设置没用~,这个变量没有用到~)
set /p n=input a number!     设置一个变量n..这个变量是交互形势的,就是说,是用户输入的数字

for /l %%i in (1,1,%n%) do (
    set /a sum+=%%i                  

for循环增加数字并且增加的数字相加 (1,1,%n%)中第一个1表示开始的数字,第二个表示以一个单位(即1,2,3,4....)这样子逐个增加,%n%结束的数字(就是用户输入的数字)set  /a=sum+=%%i  就是将循环的数字互相增加~

echo %sum%       显示最后的总和(即所有数的和)

pause              按任意键继续~


作者: coffechicken    时间: 2008-4-30 18:11

@echo off
set b=0
for /l %%i in (1 1 100) do (set /a b=b+%%i)
echo %b%
作者: yaohaixu    时间: 2008-5-5 22:45     标题: 看我的代码

不用FOR也是一样的可以的



@echo  off

set  /a  a=0,c=0
:start
set  /a  a+=1,c=c+a
if  "%a%"=="100"   goto  end
goto  start
:end   
   echo.             %c%
pause
作者: yaohaixu    时间: 2008-5-5 22:51

@echo  off
set  /p  n=请输入数据:
set  /a  c=0,a=0
:start
set  /a  a+=1, c=c+a
if  "%a%"=="%n%"   goto  end
goto  start
:end   
   echo.             %c%
pause

对于第二个问题,我在上面的做了些改变,但是不好解决错误输入的情形
作者: yycup1111    时间: 2008-8-19 17:55

@echo off
:a
set a=0
set /p n=请输入加到几
for /l %%i in (1,1,%n%) do set /a a+=%%i
echo %a%
pause&cls&goto a
作者: hexiao361    时间: 2008-8-21 09:17

1+2+3+4+...+100=?
5050   小学题
作者: hexiao361    时间: 2008-8-21 09:20     标题: 回复 2楼 的帖子

第二次计算,是第一次的结果加上第二次的结果,有问题
作者: hexiao361    时间: 2008-8-21 09:22

原帖由 yycup1111 于 2008-8-19 17:55 发表
@echo off
:a
set a=0
set /p n=请输入加到几
for /l %%i in (1,1,%n%) do set /a a+=%%i
echo %a%
pause&cls&goto a






正确答案
作者: dishuo    时间: 2008-8-21 10:55

不用for,不用goto,不用递归,最最简单的方法,哈哈
还有比这更简单的思路吗??
@echo off
set /p n=请输入加到几?
set/a a=(1+n)*n/2
echo %a%
pause

作者: wangwei4106    时间: 2008-9-1 18:54

呵呵
做新手这么久了,还没回答问题啊!
现在就奉上我的答案!
  1. @echo off&setlocal EnableDelayedExpansion
  2. set a=0
  3. set /p n=请输入:
  4. for /l %%i in (1 1 %n%) do (
  5.     set /a a+=%%i
  6. echo !a!
  7. )
  8. pause>nul
复制代码

[ 本帖最后由 wangwei4106 于 2008-9-1 18:56 编辑 ]
作者: loverwind    时间: 2008-9-2 09:47

想了半天,没有做出来,只能看一下大家的思路了
作者: xjxxdnmwj    时间: 2008-9-5 11:19

@echo off
set /a sun=0
FOR /L %%i IN (1,1,100) DO set /a sun+=%%i
echo %sun%
pause
作者: qq641255849    时间: 2008-9-6 09:47

  1. @echo off
  2. set/p a1=头项
  3. set/p a2=末项
  4. set/p a3=相邻两个数之差
  5. set /a n=(%a2%-%a1%)/%a3%+1
  6. set /a n1=(%a1%+%a2%)*%n%/2
  7. echo %n1%&pause
  8. for /l %%a in (%a1% %a3% %a2%) do (set /a z+=%%a)
  9. echo %z%&pause
复制代码


支持间距两数之差为任意实数...

PS:算法很弱智...

[ 本帖最后由 qq641255849 于 2008-9-6 13:05 编辑 ]
作者: dywjzh    时间: 2008-9-8 12:48

  1. @ echo off
  2. for /l %%i in (1,1,100) do (set /a sum+=%%i)
  3. echo 从1到100的数字之和是:%sum%
  4. pause>nul
  5. set sum=0
  6. set /p input=随意输入壹个数字:
  7. for /l %%i in (1,1,%input%) do (set /a sum+=%%i)
  8. echo 从1一直加到你输入的数字之和是:%sum%
  9. pause>nul
复制代码

作者: bater    时间: 2008-9-9 10:57     标题: 我的做法

@echo off
set /p n=


set /a sum=(1+%n%)*%n%/2
echo %sum%
作者: 书皮    时间: 2008-9-9 19:17

@echo off
set/p n="n等于?  "
set/a s=1
set/a y=1
:d
set/a y=%y%+1
set/a s=%s%+%y%
if %y%==%n% goto p
goto d
:p
echo %s%
pause
作者: batbird    时间: 2008-9-12 10:50

@echo off
echo 计算1+2+3+......+n
set sum=0
set /p a=请输入n:

setlocal EnableDelayedExpansion
for /l %%i in (1,1,%a%) do (
        set val=%%i
        set /a sum=!!sum!+!val!!
)
echo 1+2+3+......+%a%=!sum!
endlocal

set sum=
set val=
set a=

pause
----------------------------------------------
看了看别人的代码,for /l %%i in (1,1,%input%) do (set /a sum+=%%i)
为什么这个时候可以不用延时变量?sum难道不是在预处理中就替换了的?
希望有高人解释解释

[ 本帖最后由 batbird 于 2008-9-12 10:57 编辑 ]
作者: wxcute    时间: 2008-9-15 13:41

  1. @echo off
  2. :hk
  3. set/p n=输入一个数:
  4. set/a m=(1+%n%)*%n%/2
  5. cls
  6. echo %m%
  7. goto hk
复制代码

作者: stu_light    时间: 2008-10-14 20:57

看看啊..   ..............看看
作者: xwfswh    时间: 2008-10-30 21:30

现学现卖中~
@echo off
set %%i=1
for /l %%i in (1 1 100) do set /a sum+=%%i
echo %sum%
pause

sum+=%%i这个参数弄了老半天
想通了~~以前有学过C++的一点基础。现在想起来了,暴汗!

至于提高题:
@echo off
set %%i=1
set /p n= 请输入N的值
for /l %%i in (1 1 %n%) do set /a sum+=%%i
echo %sum%
pause
嘿嘿,难倒不难,新手来的,批处理懂得太少了~~
格式方面不知道有什么错误没

[ 本帖最后由 xwfswh 于 2008-10-30 21:35 编辑 ]
作者: steven007    时间: 2008-12-19 16:10

@echo off &title 累加计算&color 1a&mode con cols=35 lines=10
set /p n=请输入从1累加到几的那个数:
set /a t=0
for /l %%i in (1,1,%n%) do (set /a t=t+%%i)
echo 累加结果是:%t%
pause >nul
作者: firewolf85    时间: 2008-12-21 10:29

  1. @echo off
  2. set /p n=请输入N:
  3. set num=0
  4. FOR /l %%i in (1 1 %n%) do (
  5. set /a num+=%%i
  6. )
  7. echo 1+2+3+...+%n%=%num%
  8. pause>nul
复制代码

作者: skuny    时间: 2009-1-9 11:13

@echo off
for /l %%i in (100,-1,1) do set /a sum+=%%i
echo %sum%
pause>nul
作者: p05401144    时间: 2009-1-19 10:25

前几天有事,现在又可以坐下来学习了
@echo off
for /l %%i in (1 1 100) do (set /a sum+=%%i)
echo 1+2+3+...+100=%sum%
pause
作者: zcy85611    时间: 2009-1-19 10:50

  1. @echo off&setlocal EnableDelayedExpansion
  2. set /p num=请输入数字:
  3. for /l %%a (1 1 %num%) do (
  4. set /a n=n+%%a
  5. )
  6. echo 运算结果:!n!
  7. pause>nul
复制代码

[ 本帖最后由 zcy85611 于 2009-1-19 10:53 编辑 ]
作者: denev2004    时间: 2009-2-3 16:36

@echo off
set /p nax=1+2+3+4+. . . . . . . . . . . . . +
set /a answer=(1+%nax%)*%nax%/2
echo %answer%
pause > nul


看见第一楼用的for,我感觉既然公差一定用求和公式就好了
作者: kingerpk    时间: 2009-2-6 23:33

  1. @echo off
  2. set x=1
  3. for /l %%a in (2,1,100) do (
  4. set /a x=x+%%a
  5. )
  6. echo %x%
  7. pause
复制代码

作者: kingerpk    时间: 2009-2-6 23:41

  1. @echo off
  2. set /p x=1+2+3+4+5+6+7+8+9+~~~~~:
  3. set y=1
  4. for /l %%a in (2,1,%x%) do set /a y=y+%%a
  5. echo %y%
  6. pause
复制代码

作者: irresolute    时间: 2009-2-16 10:47     标题: 我来试

  1. @echo off
  2. :main
  3. set aa=
  4. setlocal enabledelayedexpansion
  5. set /p n=请输入数字n:
  6. for /l %%i in (1,1,%n%) do (
  7. set /a aa=!aa!+%%i)
  8. echo !aa!
  9. pause>nul
  10. goto :main
复制代码
算法真简单
作者: irresolute    时间: 2009-2-16 10:48     标题:

  1. @echo off
  2. :main
  3. set aa=
  4. setlocal enabledelayedexpansion
  5. set /p n=请输入数字n:
  6. for /l %%i in (1,1,%n%) do (
  7. set /a aa=!aa!+%%i)
  8. echo !aa!
  9. pause>nul
  10. goto :main
复制代码

作者: zhouyongjun    时间: 2009-2-16 11:49

  1. @echo off
  2. set/p n=  input a number :
  3. set/a s=n-1,s*=n/2,s+=n
  4. echo %s%
  5. pause
复制代码

[ 本帖最后由 zhouyongjun 于 2009-2-16 11:54 编辑 ]
作者: myzwd    时间: 2009-2-22 21:40     标题: 回复 1楼 的帖子

@echo off
setlocal enabledelayedexpansion
for /l %%i in (1 1 100) do (
set /a tt+=%%i,sum=tt-1)
echo !sum!
作者: keen    时间: 2009-3-17 12:10

  1. @echo off
  2. set /p n= 请输入最后一个数:
  3. set /a sum=(1+%n%)*%n%/2
  4. echo 总和:%sum%
  5. pause
复制代码

作者: hyx    时间: 2009-3-18 15:00

计算1到100

@echo off
setlocal enabledelayedexpansion
set a=0
for /l %%i in (1,1,100) do set /a a=a+%%i
echo 1到100的数字之和为%a%
pause>nul

计算1到n

@echo off
echo 计算1+2+3+...+n=?
setlocal enabledelayedexpansion
set /p a=请输入n为几:
set b=0
for /l %%i in (1,1,%a%) do set /a b=b+%%i
echo 1到%a%的数字之和为%b%
pause>nul
作者: qq362220083    时间: 2009-3-18 15:42

  1. set /p maxnum=input a number:
  2. set /a sum=(%maxnum%+1)*%maxnum%/2
  3. echo.
  4. echo.
  5. echo.
  6. echo.%sum%
  7. pause>nul
复制代码

作者: pusofalse    时间: 2009-3-18 15:53     标题: 回复 46楼 的帖子

46楼的算法真高!~
作者: stuqx    时间: 2009-3-20 21:27

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

作者: rogoo    时间: 2009-3-22 15:29

::以下为1-n
set /p num=其输入数字
set he=0
for /l %%i in (1,1,%num%) do (
set /a he=he+%%i
)
echo 和为%he%
pause
::以下为1-100
set he=100
for /l %%i in (1,1,100) do (
set /a he=he+%%i
)
echo 和为%he%
pause
作者: cainiao736    时间: 2009-3-29 14:08

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p n=请输入n的值:
  3. set sum=0
  4. for /l %%i in (1,1,!n!) do set /a sum=!sum!+%%i
  5. echo %sum%
  6. pause
复制代码

作者: jwq    时间: 2009-3-29 15:45

set /a sum=0
for /l %%n in (0,1,100) do (
set /a sum=sum+%%n)
echo %sum%
pause
不晓得这段过不过关哈!
作者: sjzong    时间: 2009-5-5 22:43

看过了,也学习了……
作者: wjjy    时间: 2009-5-6 03:04

  1. set /a 50*(100+1)
复制代码

作者: wangshuping42    时间: 2009-5-9 14:53     标题: 初次发代码,见笑了

@echo off
set sum=0
setlocal enabledelayedexpansion
for /l %%i in (1 1 100) do ( set /a sum=sum+%%i)
echo !sum!
pause>nul
作者: johnson3333    时间: 2009-6-27 17:37

  1. ::批处理计算1+2+3+4+...+100=?
  2. ::计算从1到100的数字之和
  3. ::要求:
  4. ::不能直接echo,必须用程序计算出结果;
  5. @echo off
  6. set var1=0
  7. set /p var2=请输入最大数:
  8. for /l %%a in (1 1 %var2%) do (set /a var1+=%%a)
  9. echo;%var1%
  10. pause
  11. @echo off
  12. set var1=0
  13. for /l %%a in (1 1 100) do (set /a var1+=%%a)
  14. echo;%var1%
  15. pause
复制代码

作者: wlsmen    时间: 2009-6-30 00:03

不能是(1+100)X50吗?
作者: keen    时间: 2009-6-30 10:23     标题: 回复 56楼 的帖子

楼主出本题的目的是让新手们熟悉批处理的基本语法,让新手们对批处理有个基本的概念。
你的想法是正确的,就是应该思考怎么样用批处理实现。
作者: lvyaojian    时间: 2009-12-14 13:15

1.
  1. @echo off
  2. set /a sum=0
  3. for /l %%i in (1,1,100) do (
  4. set /a sum=sum+%%i
  5. )
  6. echo %sum%
  7. pause
复制代码
2.
  1. @echo off
  2. set /p n=输入N:
  3. set /a sum=0
  4. for /l %%i in (1,1,%n%) do (
  5. set /a sum=sum+%%i
  6. )
  7. echo %sum%
  8. pause
复制代码

作者: vsbat    时间: 2009-12-14 13:59

@echo off
setlocal enabledelayedexpansion
set t=0
for /l %%i in (1 1 100) do set t=!t!+%%i
echo %t%=
set /a t=%t%
echo %t%
pause

作者: wsjxwj    时间: 2009-12-14 16:30

::a1
for /l %%i in (1,1,100) do (set /a num+=%%i)
echo %num%&pause>nul
::a2
set /p n=请输入一个数字:
for /l %%i in (1,1,%n%) do (set /a num+=%%i)
echo %num%&pause>nul
作者: pumahxh    时间: 2009-12-14 22:34     标题: 输入任意自然数求和,包括0

前面有人用findstr确保输入既是数字又符合逻辑,但没包含0,下面代码可以确保输入的数字是自然数,即可以求0到n的和。这似乎跑题了,但仍然用for语句,也算是符合题目吧。
  1. @echo off
  2. :star
  3. set/p "b=请输入一个自然数:"
  4. echo %b%|findstr "^[1-9][0-9]*$ ^[0]$" >nul
  5. if %errorlevel%==0 (
  6.    for /l %%i in (0,1,%b%) do set/a sum+=%%i
  7.    call,echo %%sum%%
  8.    ) else (cls&echo 输入错误!&goto star)      
  9. pause
复制代码

[ 本帖最后由 pumahxh 于 2009-12-14 22:59 编辑 ]
作者: nuifv12    时间: 2009-12-16 14:22

  1. @echo off
  2. set /p n=请输入数值:
  3. for /l %%i in (0,1,%n%) do (
  4.        set /a sum=sum+%%i
  5. )
  6. echo %sum%
  7. pause
复制代码

作者: Fyk    时间: 2009-12-17 21:31

  1. @echo off
  2. for /l %%a in (1,1,6) do set /a var+=%%a
  3. echo %var%
  4. pause
复制代码

作者: Fyk    时间: 2009-12-17 21:31

  1. @echo off
  2. for /l %%a in (1,1,100) do set /a var+=%%a
  3. echo %var%
  4. pause
复制代码

作者: neorobin    时间: 2009-12-24 14:14

  1. set /a (1+100)*100/2
复制代码

作者: neorobin    时间: 2009-12-24 14:26

  1. @set /p n=请输入n:
  2. @set /a n=(n+1)*n/2
  3. @echo 结果:%n%&pause
复制代码

作者: a590687    时间: 2010-1-7 09:00

早上就是有灵感.
  1. @echo off&setlocal enabledelayedexpansion
  2. :lp
  3. set sun=0
  4. set /p a=请输入要从1加到几:
  5. for /l %%i in (1,1,%a%) do (
  6.     set /a sun+=%%i
  7.     )
  8. set/p=!sun!<nul
  9. echo.
  10. goto lp
复制代码

作者: Kenmick    时间: 2010-1-18 18:41     标题: 新手交作业了,多多指教~~~

  1. @echo off
  2. set /p n=请输入任意数字
  3. echo 您输入的数字为:%n%
  4. for /l %%i in (1 1 %n%) do set /a num+=%%i
  5. echo 计算结果为:%num%
  6. pause >nul
复制代码

作者: foxJL    时间: 2010-1-18 19:11

这不就是直接应用的梯形面积公式吗,(上底+下底)*高/2。:)
作者: caimingbing    时间: 2010-1-22 08:52

  1. @echo off
  2. for /l %%i in (1,1,100) do (
  3. set /a n+=%%i
  4. )
  5. echo %%n
  6. pause
复制代码

作者: novioleo    时间: 2010-3-18 19:25     标题: 哎呀。

各位  那几个都不行哈~~
你们那几个只能在限定值内进行
如果超了
就是负的


而且你们的还是单次的不方便啊


我写了一段
请大虾帮忙改下
  1. @echo off
  2. :a1
  3. set /p n=input the last number!
  4. for /l %%a in (1,1,%n%) do set /a b=((%%a+1)*%%a)/2
  5. echo %b%
  6. pause
复制代码

作者: lengye    时间: 2010-4-12 20:29

  1. @echo off
  2. set /p n=请输入数字:
  3. cls
  4. set /a x=%n%*(1+%n%)/2
  5. echo %x%
  6. pause
复制代码

作者: 634175535    时间: 2010-4-16 23:39

玩的不是批处理玩的是寂寞呐
作者: 634175535    时间: 2010-4-24 15:00

  1. @echo off
  2. title=1+2+3+…+100=?
  3. setlocal enabledelayedexpansion
  4. for /l %%i in (1 1 100) do (
  5. set /a sum+=%%i
  6. )
  7. echo 1+2+3+…+100=!sum!
  8. pause>nul
复制代码

作者: mangci    时间: 2010-5-12 23:49

  1. @ echo off
  2. set /a num=(100+1)*(100/2)
  3. echo,%num%
  4. pause
复制代码

作者: michael8111    时间: 2010-6-14 16:49

  1. @ echo off
  2. set /a num=1+2+3+4+...+100
  3. echo %a%
  4. pause
复制代码

作者: lscorpion    时间: 2010-6-14 21:01

  1. @echo off    //关闭回显
  2. set /a sum=0    //一开始总和为0
  3. for %%i in(1,1,100) do (set /a sum++)  //循环100次对sum进行累加
  4. call echo 总的结果是:%sum%     //输出最终结果
  5. pause  //暂停
  6. exit
复制代码

作者: chenfei    时间: 2010-6-29 05:14     标题: 只知道是用个FOR循环

只知道用一个循环,但是具体说不清楚
大概貌类似于
赋值一个自变量X=1   X<=100
下一句:X=X+1
然后GOTO到前面,当条件不符合时,退出循环吧,呵呵我很菜,不要笑我哦
作者: xjc080304    时间: 2010-7-12 18:46     标题: 回复 12楼 的帖子

这解释太完美了。让人豁然开阔。
作者: poxi    时间: 2010-7-18 18:49

答:
  1. @echo off
  2. :1
  3. set con=0
  4. set ds=0
  5. set /p end=请输入要加到的值
  6. ::---------循环首----------
  7. :start
  8. set /a con+=1
  9. set /a ds=%ds%+%con%
  10. ::---------循环尾----------
  11. if %con%==%end% (echo 答案是:%ds%) else (
  12. goto start
  13. )
  14. goto 1
复制代码

作者: solid    时间: 2010-7-27 22:57

  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. for /l %%a in ( 0 1 100 ) do (
  4. set ji=%%a
  5. set /a jia+=!ji!
  6. )
  7. echo !jia!
  8. pause
复制代码

作者: rogue_1983    时间: 2010-8-4 23:16     标题: set /a a=0,c=0 可以去掉吧?

原帖由 yaohaixu 于 2008-5-5 22:45 发表
不用FOR也是一样的可以的



@echo  off

set  /a  a=0,c=0
:start
set  /a  a+=1,c=c+a
if  "%a%"=="100"   goto  end
goto  start
:end   
   echo.             %c%
pause

这个代码set /a a=0,c=0 可以去掉吧,因为一开始第一次赋值a的值为0,所以a+=1 就是a=a+1所以a=1,同样c=c+a,就是c=0+1,因为第一次赋值c的值为0,所以c=0+1 ,c=1
作者: fish    时间: 2010-8-6 17:06     标题: 根本用不着循环嘛。。。

  1. @echo off
  2. set /p n=请输入:
  3. set /a sum=(1+%n%)*%n%/2
  4. echo 1加到%n%的和是%sum%
  5. pause
复制代码

作者: qq506657335    时间: 2010-8-22 21:51

  1. @echo off&setlocal enabledelayedexpansion
  2. set a=0
  3. for /l %%i in (1 1 100) do (
  4.     set c=%%i
  5.     set /a a=!a!+!c!
  6.     cls&@echo !a!
  7. )
  8. pause
复制代码

作者: rogue_1983    时间: 2010-8-24 19:55     标题: 这样行不?

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1 1 100) do set /a b+=%%i
  4. echo !b!
  5. pause
复制代码

作者: lvsehuaxue    时间: 2010-9-17 20:30     标题: 我也献丑

  1. rem 此为第二个问题答案
  2. @echo off
  3. set /p a=请输入数值
  4. for /l %%i in (1,1,%a%) do (
  5.     set /a n+=%%i
  6. )
  7. echo %n%
  8. pause
复制代码

作者: win    时间: 2010-9-20 23:14

收藏了有空来学习一下
作者: piedcity    时间: 2010-9-20 23:14

  1. @echo off
  2. set /a var=0
  3. for /l %%i in (1,1,100) do (
  4. set /a var+=%%i
  5. )
  6. echo %var%
  7. pause
复制代码

作者: gaoyi445267987    时间: 2010-9-21 21:01     标题: 不用FOR算出来的

  1. @echo off
  2. SET N=0
  3. SET /P M=INPUT A NUMBER
  4. :START
  5. SET /A N+=1
  6. SET /A SUM+=%N%
  7. IF %N% EQU %M% (ECHO %SUM%) ELSE goto START
  8. PAUSE
复制代码

作者: lvsehuaxue    时间: 2010-9-26 14:47

  1. @echo off
  2. set n=101
  3. :loop
  4. set /a n=n-1
  5. set /a m+=n
  6. if %n% neq 0 goto loop
  7. echo %m%
  8. pause
复制代码

作者: edmond    时间: 2010-10-1 20:41

  1. @echo off
  2. set t=0
  3. for /l %%a in (1 1 100) do (
  4. set/a t+=%%a
  5. )
  6. echo %t%
  7. pause
复制代码

作者: qinshi52    时间: 2010-10-5 17:35

  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1,1,100) do set /a s+=%%i
  3. echo !s!
  4. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p n=请输入数字:
  3. for /l %%i in (1,1,!n!) do set /a s+=%%i
  4. echo !b!
  5. pause
复制代码

作者: photonjl    时间: 2010-10-5 21:26

  1. ::从1加到100的
  2. @echo off
  3. set str=0
  4. for /l %%i in (1,1,100) do (
  5.     set /a str+=%%i
  6. )
  7. echo %str%
  8. pause>nul
复制代码

作者: photonjl    时间: 2010-10-5 21:30

  1. ::任意数值的计算
  2. @echo off
  3. set str=0
  4. set /p var=input number
  5. for /l %%i in (1,1,%var%) do (
  6.     set /a str+=%%i
  7. )
  8. echo %str%
  9. pause>nul
复制代码

作者: lys5300    时间: 2010-10-5 22:32

  1. @echo off
  2. set /a sum=0
  3. for /l %%a in (1 1 100) do (
  4. set/a sum+=%%a
  5. )
  6. echo %sum%
  7. set sum=
  8. pause>nul
复制代码

作者: smallpigs    时间: 2010-10-22 14:46

@echo off
:abc
cls
set /a i = 1
set /p n=請輸入數字:
if {%n%}=={} goto abc
:acb
set /a i+=1,j+=i
if %i% neq %n% goto acb
echo %j%
pause
作者: smallpigs    时间: 2010-10-22 14:47

@echo off
:abc
cls
set /a i = 1
set /p n=請輸入數字:
  1. @echo off
  2. :abc
  3. cls
  4. set /a i = 1
  5. set /p n=請輸入數字:
  6. if {%n%}=={} goto abc
  7. :acb
  8. set /a i+=1,j+=i
  9. if %i% neq %n% goto acb
  10. echo %j%
  11. pause
复制代码

if {%n%}=={} goto abc
:acb
set /a i+=1,j+=i
if %i% neq %n% goto acb
echo %j%
pause

作者: lmhxly    时间: 2010-10-22 19:25

{code}
@echo off
set a=0
set b=0
:a
echo +%a%=%b%
set /a a+=1
set /a b=%b%+%a%
if %a% gtr 100 (pause) else (goto a
exit
{/code}
作者: zsllq    时间: 2010-10-27 15:35

  1. @echo off
  2. set var=0
  3. for /l %%a in (1,1,100) do (set /a var=var+%%a)
  4. echo 1+2+3+4+...+100=%var%
  5. pause>nul
复制代码

[ 本帖最后由 zsllq 于 2010-10-27 15:36 编辑 ]
作者: weichenxiehou    时间: 2010-10-28 09:19

  1. @echo on&setlocal enabledelayedexpansion
  2. set sum=0
  3. for /l %%i in (1,1,100) do (set /a sum+=%%i)
  4. echo 1+2+...+100=!sum!
  5. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2