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

TOP

1+2+3+4+...+100=?
5050   小学题

TOP

回复 2楼 的帖子

第二次计算,是第一次的结果加上第二次的结果,有问题

TOP

原帖由 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






正确答案

TOP

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

评分人数

    • firewolf85: 当N很大时的确很节省资源PB + 4
    • youxi01: 呵呵,纯粹变成数学了!PB + 1
高手=发现问题^分析问题^解决问题

TOP

呵呵
做新手这么久了,还没回答问题啊!
现在就奉上我的答案!
  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 编辑 ]
1

评分人数

    • youxi01: 似乎没必要开启延迟PB + 1
要想提高多做,多想,多问!
空间http://www.wangwei4106.ys168.com

TOP

想了半天,没有做出来,只能看一下大家的思路了

TOP

@echo off
set /a sun=0
FOR /L %%i IN (1,1,100) DO set /a sun+=%%i
echo %sun%
pause

TOP

  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 编辑 ]

TOP

  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
复制代码

TOP

我的做法

@echo off
set /p n=


set /a sum=(1+%n%)*%n%/2
echo %sum%

TOP

@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

TOP

@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 编辑 ]

TOP

  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
复制代码

TOP

看看啊..   ..............看看

TOP

返回列表