阿拉伯数字转为罗马数字
生活随笔
收集整理的這篇文章主要介紹了
阿拉伯数字转为罗马数字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
:: 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
@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
總結
以上是生活随笔為你收集整理的阿拉伯数字转为罗马数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: byte[]、sbyte[]、int[]
- 下一篇: 如何自定义MFC的窗口类名