
//
//
//
//
//
//
//
//
//
//
软件Tags:
能实现阿拉伯数字与罗马数字互转程序的批处理文件 ,双击运行复制代码
代码如下::: 阿拉伯与罗马数字互转程序:: qzwqzw <a href="//bbs.cn-dos.net">//bbs.cn-dos.net</a>:: 2007-01-03 Revision 2:: 出处:<a href="//www.cn-dos.net/forum/viewthread.php?tid=26230">//www.cn-dos.net/forum/viewthread.php?tid=26230</a>@echo offsetlocal EnableDelayedExpansion</p><p>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 ---)pauseendlocalgoto :eof</p><p>:Arab2Romansetlocal EnableDelayedExpansionset num=%in%set /a tmp=num+0if not "%num%"=="%tmp%" goto :eofif %num% geq 4000 goto :eofif %num% leq 0 goto :eof</p><p>set i=0for %%v in (1000 900 500 400 100 90 50 40 10 9 5 4 1) do ( set /a i+=1 set arab!i!=%%v)</p><p>set i=0for %%v in (M CM D CD C XC L XL X IX V IV I) do ( set /a i+=1 set roman!i!=%%v)</p><p>set i=1:a2r_loopcall set tmp=%%arab%i%%%</p><p>if 1%num% lss 1%tmp% ( set /a i+=1) else ( call set rom=%rom%%%roman%i%%% set /a num-=tmp)</p><p>if 1%num% gtr 10 goto a2r_loop</p><p>endlocal & set out=%rom%goto :eof::Arab2Roman</p><p>:Roman2Arabsetlocal EnableDelayedExpansion</p><p>echo.%in%|findstr /r "[^IVXLCDMivxlcdm]">nul && goto :eof</p><p>set i=0for %%v in (1000 900 500 400 100 90 50 40 10 9 5 4 1) do ( set /a i+=1 set arab!i!=%%v)</p><p>set i=0for %%v in (M 1 D 2 C 3 L 4 X 5 V 6 I) do ( set /a i+=1 set roman!i!=%%v)</p><p>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%</p><p>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%</p><p>set i=1set num=0:r2a_loopset 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 :eofif not "%in%"=="" goto r2a_loop</p><p>endlocal & set out=%num%goto :eof::Roman2Arab警告:运行BAT源码是一种危险的动作,如果你不熟悉,请不要尝试!
