中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 00:10
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [已解决]求最大公约数,得不到要的结果
可打印版本  1,231 / 4
第1楼 donpps 发表于 2007-01-13 00:58
初级用户 发帖 20 积分 56
[已解决]求最大公约数,得不到要的结果
请教:
代码如下,不知错在何处,得不到要的结果
@echo off
rem 求36与另一个正整数(少于36)的最大公约数
:start
set y=36
set /p x= 输入小于36的正整数:
:divisor
set /a y=%y%%%%x%
if %y%==0 set mcdivisor=%x% && goto :display
set x=%x%%%%y%
if %x%==0 set mcdivisor=%y% && goto :display
goto :divisor
:display
echo mcdivisor:%mcdivisor%
pause
goto :start

[ Last edited by donpps on 2007-1-13 at 02:13 AM ]
第2楼 youxi01 发表于 2007-01-13 01:30
高级用户 发帖 247 积分 846 来自 湖南==》广东
试试这个:


[ Last edited by youxi01 on 2007-1-13 at 02:27 AM ]
第3楼 youxi01 发表于 2007-01-13 01:33
高级用户 发帖 247 积分 846 来自 湖南==》广东
TO: 楼主,你的错误的地方是那个y应该要交换的,而你直接去定义了
“set /a y=%y%%%%x%”
第4楼 donpps 发表于 2007-01-13 01:51
初级用户 发帖 20 积分 56
谢谢指正,2楼的代码有点小小毛病
echo %num1%和%num2%最大公约数为:%num2%
其中%num1%和%num2%已经变化
第5楼 jmz573515 发表于 2007-01-20 03:19
银牌会员 发帖 464 积分 1,212
VBS写一个,灌水~
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023