Board logo

标题: [数值计算] 批处理实现求两个整数之间所有整数相加之和 [打印本页]

作者: lrd    时间: 2008-8-16 20:06     标题: 批处理实现求两个整数之间所有整数相加之和

本帖最后由 pcl_test 于 2016-11-3 22:01 编辑

@echo off
:a
set /p z=请输入任意数字
set /p n=请输入另一数字
set /a x=(%n%-%z%+1)*(%z%+%n%)/2
if %n% lss %z% goto c
echo 由%z%加至%n%的和是%x%
pause>nul
set /p y=是否再算一组(Y/N)?
if "%y%"=="y" goto a
if "%y%"=="n" goto b
:b
echo 那算了86
pause>nul&exit
:c
echo 你的输入有问题吧?
pause>nul&goto a
练习而已
想改进下,若先输入的数大于后输入的数,我没办法算,我知道怎么办
可是我嫌麻烦
有没有更好的办法?
作者: huahua0919    时间: 2008-8-16 20:15

难道负数就不能运算了??
作者: Batcher    时间: 2008-8-16 21:37

这样是不是要好一些?
  1. @echo off
  2. :a
  3. set /p z=请输入任意数字
  4. set /p n=请输入另一数字
  5. echo 由%z%加至%n%的和是
  6. if %n% lss %z% (
  7.   set t=%z%
  8.   set z=%n%
  9.   set n=%t%
  10. )
  11. set /a x=(%n%-%z%+1)*(%z%+%n%)/2
  12. echo %x%
  13. pause>nul
  14. set /p y=是否再算一组(Y/N)?
  15. if /i "%y%"=="y" goto a
  16. if /i "%y%"=="n" goto b
  17. :b
  18. echo 那算了86
  19. pause>nul&exit
  20. :c
  21. echo 你的输入有问题吧?
  22. pause>nul&goto a
复制代码

作者: shqf    时间: 2008-8-16 21:56

把这一句if %n% lss %z% goto c 改成 if %n% lss %z% set /a x=(%z%-%n%+1)*(%z%+%n%)/2




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