日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

阿拉伯与罗马数字互转程序

發(fā)布時(shí)間:2025/3/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿拉伯与罗马数字互转程序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
:: 阿拉伯與羅馬數(shù)字互轉(zhuǎn)程序
:: qzwqzw http://bbs.cn-dos.net
:: 2007-01-03 Revision 2
:: 出處:http://www.cn-dos.net/forum/viewthread.php?tid=26230
@echo off
setlocal EnableDelayedExpansion


for /l %%i in (1,1,100) do (
? ? set /a numin=!random!*4200/32768-100
? ? set in=!numin!
? ? set out=
? ? call :Arab2Roman
? ? set in=!out!
? ? call :Roman2Arab
? ? echo.%%i [!numin!:!in!:!out!]
? ? if !numin! neq !out! set /p=--- Invalid ---
)
pause
endlocal
goto :eof


:Arab2Roman
setlocal EnableDelayedExpansion
set num=%in%
set /a tmp=num+0
if not "%num%"=="%tmp%" goto :eof
if %num% geq 4000 goto :eof
if %num% leq 0 goto :eof


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 XL X IX V IV I) do (
? ? set /a i+=1
? ? set roman!i!=%%v
)


set i=1
:a2r_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 a2r_loop


endlocal & set out=%rom%
goto :eof
::Arab2Roman


:Roman2Arab
setlocal EnableDelayedExpansion


echo.%in%|findstr /r "[^IVXLCDMivxlcdm]">nul && goto :eof


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 1 D 2 C 3 L 4 X 5 V 6 I) do (
? ? set /a i+=1
? ? set roman!i!=%%v
)


set in=%in:m=M%
set in=%in:d=D%
set in=%in:c=C%
set in=%in:l=L%
set in=%in:x=X%
set in=%in:v=V%
set in=%in:i=I%


set in=%in:CM=1%
set in=%in:CD=2%
set in=%in:XC=3%
set in=%in:XL=4%
set in=%in:IX=5%
set in=%in:IV=6%


set i=1
set num=0
:r2a_loop
set tmp=%in:~0,1%
call set rom1=%%roman%i%%%
if "%tmp%"=="%rom1%" (
? ? call set /a num+=arab%i%
? ? set in=%in:~1%
) else (
? ? set /a i+=1
)
if %i% gtr 13 goto :eof
if not "%in%"=="" goto r2a_loop


endlocal & set out=%num%
goto :eof
::Roman2Arab

總結(jié)

以上是生活随笔為你收集整理的阿拉伯与罗马数字互转程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。