阿拉伯与罗马数字互转程序
:: 阿拉伯与罗马数字互转程序
:: 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
阿拉伯与罗马数字互转程序相关推荐
- 折腾词库,一个词库互转程序
我在之前写过一个小程序,用于实现QQ拼音.搜狗拼音.谷歌拼音和百度手机拼音输入法词库的互转,文章地址是:http://www.cnblogs.com/studyzy/archive/2009/12/3 ...
- c语言中英互译程序,c语言怎么翻译? 程序怎么运行?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 } /*******************************LED动作*************************************/ ...
- 单片机2个按键互锁c语言程序,单片机按键点动互锁程序 proteus仿真及源程序
/******************************************************************** 汇诚科技 ************************* ...
- 程序员情人节必备脱单秘籍!
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 作者简介:互扯程序,某互联网公司 P8 级专家攻城狮,曾参与过央视全台网的研发工作.目前正在 ...
- 2018,如何从技术小白升级到大牛程序员?
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 作者简介:互扯程序,某互联网公司 P8 级专家攻城狮,曾参与过央视全台网的研发工作.目前正在 ...
- 蓝桥杯——罗马数字转换器
古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了.之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原 ...
- 哈工大2022年春季学期计算机系统大作业——程序人生
计算机系统 大作业 题 目 程序人生-Hello's P2P 专 业 人工智能(未来技术) 学 号 7203610716 班 级 20WJ102 学 生 孙铭蔚 ...
- python爬虫之英汉互译(爬虫+pyqt5)
简单的爬虫与图形化界面的结合 源码转载自[https://blog.csdn.net/qq_38534107/article/details/90440403] 作者:耳森Paulson 在此十分感谢 ...
- c语言罗马数字转十进制,罗马数字转十进制的三种方法
题目要求古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了. 之所以这样,不是因为发明表示法的人的智力的问题,而是因为一 ...
最新文章
- KDD 2019高维稀疏数据上的深度学习Workshop论文汇总
- android onresume时view,android – 在使用ViewPager滑动时,Fragment不会调用OnResume()
- filebeat获取nginx的access日志配置
- Oracle 备份还原
- gramer法则matlab,东南大学几何与代数matlab实验报告(大一专用).doc
- C语言:L1-034 点赞 (20分)(解题报告)
- 实用 JavaScript 调试技巧
- 提高Java表达能力!不落伍一起掌握Java8中Lambda表达式、函数式接口及方法构造器数组引用
- 搭建mysql集群,使用Percona XtraDB Cluster搭建
- qt编译实现简单的文本编译器有粘贴复制_qmake 时复制文件(自动在编译前做一些操作,且写在.pro文件里)...
- 目录、路径、虚拟路径
- 编译生成的Apk安装到手机提示应用未安装,需给apk签名
- mybatis中concat的用法
- 2019年春第八周作业
- java class类
- 一种排序NYOJ 8
- MTK驱动增加支持扫描显示中文SSID
- win10下面安装MTK USB VCOM 驱动
- java 中文词性标注_pyhanlp 中文词性标注与分词简介
- 大学英语综合教程一 Unit 1 课文内容英译中 中英翻译