阿拉伯数字转为罗马数字

:: Arab2Roman 阿拉伯数字转为罗马数字

@echo off
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值