标题: [数值计算] [分享]批处理对分数进行约分计算 [打印本页]
作者: batman 时间: 2009-7-31 11:05 标题: [分享]批处理对分数进行约分计算
&&由于很多原因,本人很久没有在论坛发过贴了,今天在群上和八字讨论了一下批对分数的计算,于是写下下面这个对分数进行约分的小批:- @echo off&setlocal enabledelayedexpansion
- set /p a=请输入分数的分子:
- set /p b=请输入分数的分母:
- if %a% leq %b% (set /a c=a) else (set /a c=b)
- cls&echo 原分数为:%a%^/%b%
- for /l %%a in (%c%,-1,2) do (
- set /a x=!a! %% %%a,y=!b! %% %%a
- if !x! equ 0 if !y! equ 0 set /a a/=%%a,b/=%%a
- )
- echo 约分后为:%a%^/%b%
- pause>nul
复制代码
[ 本帖最后由 batman 于 2009-7-31 11:27 编辑 ]
作者: phanphan 时间: 2010-6-8 13:33
小白提问:
1. set /a x=!a! %% %%a,y=!b! %% %%a 中,中间的那对%%是起什么作用啊?
2. if !x! equ 0 if !y! equ 0 set /a a/=%%a,b/=%%a 可以两个if这样写吗,这样写看来是“或”的意思?
作者: hanyeguxing 时间: 2010-6-8 14:59
原帖由 phanphan 于 2010-6-8 13:33 发表
小白提问:
1. set /a x=!a! %% %%a,y=!b! %% %%a 中,中间的那对%%是起什么作用啊?
2. if !x! equ 0 if !y! equ 0 set /a a/=%%a,b/=%%a 可以两个if这样写吗,这样写看来是“或”的意思?
1,求余(取模)运算符
2,与,和。
推荐楼主使用数学算法来约分,这样效率更高:- @echo off
- set/p a=请输入分数的分子:
- set/p b=请输入分数的分母:
- cls&echo.原分数为:%a%/%b%
- if %a% equ %b% set han=1&goto:han
- if %a% gtr %b% (set ye=%a%&set gu=%b%) else set ye=%b%&set gu=%a%
- :ye
- set/a xing=ye%%gu
- if %xing%==0 (set/a a/=gu,b/=gu) else set ye=%gu%&set gu=%xing%&goto:ye
- set han=%a%/%b%
- :han
- echo.约分后为:%han%&pause>nul
复制代码
[ 本帖最后由 hanyeguxing 于 2010-6-8 16:02 编辑 ]
作者: 523066680 时间: 2010-6-8 18:55 标题: 回复 1楼 的帖子
报告,8字应该是本顿。名字旁弄个(8888) 模仿极品qq号……
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |