- ·上一篇文章:一个整人程序 KPP.VBS
- ·下一篇文章:经典批处理代码之<10进制转换为16进制>
- ·百度中搜索更多的关于“经典批处理代码之< 阿拉伯数字转为罗马数字>”相关内容
- ·谷歌中搜索更多的关于“经典批处理代码之< 阿拉伯数字转为罗马数字>”相关内容
- ******申明******
- 本站文章内容有部分为收录网络中其他网友内容,DOS资源站不保证所有的代码都适合你使用。
- 由于编辑匆忙,有可能造成某些脚本文件出现丢失代码或代码无法运行的情况,请网友根据情况自行修改。
- 如果能将出错部分反馈给我,那就更好了。
经典批处理代码之< 阿拉伯数字转为罗马数字>
:: Arab2Roman 阿拉伯数字转为罗马数字
@echo off&title DOS资源站 www.cmdos.net
setlocal EnableDelayedExpansion
:test
if "%~0"=="%~f0" cls
setlocal
set /p num=请输入阿拉伯数字num("0<num<4000",直接回车退出):
if "%num%"=="" goto :eof
:checknum
set /a tmp=num+0
if "%num%"=="%tmp%" if %num% lss 4000 if %num% gtr 0 goto Arab2Roman
:error
echo.
echo 无效的数字
echo.
if "%~0"=="%~f0" pause
endlocal
goto test
:Arab2Roman
set i=0
for %%v in (1000 900 500 400 100 90 50 40 10 9 5 4 1) do (
set /a i+=1
set arab!i!=%%v
)
set i=0
for %%v in (M CM D CD C XC L CL X IX V IV I) do (
set /a i+=1
set roman!i!=%%v
)
set i=1
:loop
call set tmp=%%arab%i%%%
if 1%num% lss 1%tmp% (
set /a i+=1
) else (
call set rom=%rom%%%roman%i%%%
set /a num-=tmp
)
if 1%num% gtr 10 goto loop
::Arab2Roman
echo.
echo %rom%
echo.
if "%~0"=="%~f0" pause
endlocal
goto test

