Board logo

标题: [数值计算] 批处理计算数的任意次方 [打印本页]

作者: 基拉freedom    时间: 2008-8-19 22:19     标题: 批处理计算数的任意次方

不润色了 恩 不知道以前有没有人发过一样的 有的话就不好意思了
  1. @echo off
  2. set /p a=输入数字:
  3. set /p b=输入n次方:
  4. set d=a
  5. set /a c=%b%-1
  6. setlocal EnableDelayedExpansion
  7. :begin
  8. set /a d=!d!*%a%
  9. set /a c=!c!-1
  10. if "!c!"=="0" goto end
  11. goto begin
  12. :end
  13. echo %a%的%b%次是!d!
  14. pause
复制代码
大家能不能告诉我批处理最大支持的数字是几位????
批处理支不支持浮点数呀?????????(没试过)
以上代码 可以正常使用 以测试
作者: aaqqi1111    时间: 2008-8-19 22:59

最大支持正负2147483647

[ 本帖最后由 aaqqi1111 于 2008-8-21 14:31 编辑 ]
作者: batman    时间: 2008-8-20 09:25

  1. @echo off
  2. set /a d=1^<^<31,x="~d"
  3. echo cmd所能处理的最小数值为 %d%
  4. echo cmd所能处理的最大数值为 %x%
  5. pause>nul
复制代码

作者: oowgsoo    时间: 2008-8-20 12:32     标题: 用得着这么麻烦吗?直接用for不就行了嘛

@echo off

set /p a=输入数字:
set /p n=输入n次方:

set ret=1
for /L %%i in (1,1,%n%) do set /a ret*=%a%

echo 输出结果:%ret%
作者: m91opse    时间: 2018-5-9 20:36

奇怪4楼的批处理输入数值运行后,CMD窗口直接关闭,也没有结果?
作者: m91opse    时间: 2018-5-9 20:39

本帖最后由 m91opse 于 2018-5-9 22:07 编辑

哦!知道了,是4楼的批处理最后缺少了这个命令导致的 pause
  1. @echo off
  2. set /p a=输入数字:
  3. set /p n=输入n次方:
  4. set ret=1
  5. for /L %%i in (1,1,%n%) do set /a ret*=%a%
  6. echo 输出结果:%ret%
  7. pause
复制代码
根据4楼的批处理,在最后加入 pause 批处理命令后,测试正常
作者: m91opse    时间: 2018-5-9 20:47

请问,有没有计算小数的次方啊?唉,我数学,学的不好换给老师了。
作者: m91opse    时间: 2018-5-9 21:43

回复 4# oowgsoo
请问有小数的次方计算吗?




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