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

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

TOP

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

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

不用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

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

回复 2楼 的帖子

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

TOP

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

TOP

@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

@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

对于第二个问题,我在上面的做了些改变,但是不好解决错误输入的情形

TOP

看我的代码

不用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

TOP

@echo off
set b=0
for /l %%i in (1 1 100) do (set /a b=b+%%i)
echo %b%

TOP

@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              按任意键继续~

TOP

本人是刚接触BAT的,2楼可以解释一下您写这个BAT的方法吗?THANK YOU!!
不以物喜,不以己悲!!

TOP

不太明白...呵呵.
一天天学习,一天天进步.

TOP

返回列表