[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
先解决约分和通分吧,没这两个其他运算都不可能。。。

300P里面有最大公约数和最小公倍数的资料。。。
1

评分人数

TOP

写分数运算的话LS的代码要整理成函数,不然的话很麻烦。。。

话说LS用的是辗转相除么。。。

TOP

  1. :gcd
  2. setlocal enableextensions
  3. set /a "n=%~1, m=%~2"
  4. :gcd_1
  5. if %n% gtr %m% (set /a temp=n, n=m, m=temp)
  6. set /a r=m%%n
  7. if %r%==0 (
  8. endlocal&set /a "%~3=%n%"&set /a "%~4=%~1*%~2/%n%"
  9. goto :EOF
  10. ) else (
  11. set /a m=n, n=r
  12. goto :gcd_1
  13. )
复制代码


例如 call :gcd 15 9 g1 l1 之后,15和9的最小公约数和最大公倍数分别被保存在g1和l1变量里了。。。

效率很高,很不错。。。
1

评分人数

    • more: 确实不错PB + 20

TOP

很好很简单,三个以上我们再写一个函数,不过前提是有gcd函数。。。

通分思路:N1、N2最小公倍数G1,G1、N3最小公倍数G2,G2、N4最小公倍数G3,G3、N5……

一直到末,配合shift就可以了,然后改成函数。。。

有一点要注意,既然都开始做了,那就做到底,支持1/2+2/3这种格式。。。

TOP

我也才初二撒,不过10号才开学。。。

TOP

做成函数好吧。。。
效果很不错。。。

TOP

优先级的判断很有难度,括号优先、乘除优先,还有很多,都是很麻烦的。。。

TOP

所以说做成函数最方便了。。。

TOP

返回列表