[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
朋友拿C语言的题考我…还讲了辗转相除…没想到这个坑已经被填了……
  1. echo off&cls
  2. set /p num1=输入第一个数:
  3. set /p num2=输入第二个数:
  4. if %num1% LSS %num2% ^
  5. set num1=%num2% & set num2=%num1%
  6. :LOOP
  7. set TMP=
  8. set /a tmp=%num1%%%num2%
  9. if %tmp% neq 0 (
  10. set /a num1=num2
  11. set /a num2=tmp
  12. ) else (
  13. call :end %num2%
  14. exit
  15. )
  16. goto loop
  17. :end
  18. echo 它们的最大公约数是%1。
  19. pause
复制代码
1

评分人数

TOP

本帖最后由 老刘1号 于 2022-7-1 19:13 编辑

一万年后学了数理逻辑+位运算+数字电路的我又回来了

可读性≈0
  1. @echo off
  2. set /a a=%random%,b=%random%
  3. rem swap a & b to makes a >= b if nessary
  4. set /a "c=((a-b)>>31)+1"
  5. set /a "d=c*a+(1-c)*b"
  6. set /a "e=(1-c)*a+c*b"
  7. rem echo %a% %b% %c% %d% %e%
  8. set /a "a=d,b=e"
  9. rem get greatest common divisor of a & b into a
  10. :g0
  11. set /a "c=a%%b,a=b,b=c,gend=!c"
  12. rem echo %a% %b%
  13. goto g%gend%
  14. :g1
  15. echo %d% %e% -^> %a%
  16. pause
复制代码
论坛这个万年屏蔽词…幸好我又看了一眼

TOP

返回列表