一、学习要点:
1.运用递归的思想,找出罗马字符串中最大的元素,对左边的处理是减去,对右边的处理是加上;递归头是字符串只剩下一个元素时,或者右边的下标小于左边的下标;
二、代码:

#include<stdlib.h>
#include<stdio.h>
int single_r2i(char ch)
{char s1[7] = { 'I','V','X','L','C','D','M' };int  s2[7]= { 1,5,10,50,100,500,1000 };for (int i = 0; i < 7; i++){if (s1[i] == ch) {return s2[i];}}
}
int find_maxindex(char* s, int l, int r) {int max = single_r2i(s[l]);int max_index=l;for (int i = l+1; i <= r; i++){if (single_r2i(s[i]) > max){max = single_r2i(s[i]);max_index = i;}}return max_index;
}
int r2i(char* s, int l, int r) {int max_index=0;if (l == r) {return single_r2i(s[l]);}if (l > r){return 0;}else {max_index = find_maxindex(s, l, r);return single_r2i(s[max_index]) + r2i(s, max_index + 1, r) - r2i(s, l, max_index - 1);}
}
int main()
{char s[7] = { 'M','C','M','X','C','I','X' };int result = r2i(s, 0, 6);printf("%d\n", result);system("pause");return 0;
}

三、程序运行结果:

罗马数字转阿拉伯数字相关推荐

  1. 罗马数字和阿拉伯数字互转(源码)

    罗马数字和阿拉伯数字互转(源码) 将下面源码全部复制下来直接粘贴到html页面试一下,代码还有许多需要改进的地方,请各位大神多多指点,谢谢! <!DOCTYPE html> <htm ...

  2. 罗马数字与阿拉伯数字的相互转换

      最近遇到一道非常有趣的题目,题目大意如下:有一个富翁在银河系里做生意,而银河系使用的是罗马数字,所以他需要一个精明能干的助手,帮助他完成罗马数字与阿拉伯数字的相互转换,题目在这个背景下衍生出交易场 ...

  3. python罗马数字转换阿拉伯数字_20202427-张启辰《Python3初学:罗马数字转阿拉伯数字》...

    20202427-张启辰<Python3初学:罗马数字转阿拉伯数字> 1.规则 罗马数字是古罗马使用的一种记数系统,在阿拉伯数字传入之前使用较为普遍,目前大家可能在钟表.日历.文章的排序 ...

  4. java输出罗马数字_Java实现的求解经典罗马数字和阿拉伯数字相互转换问题示例...

    本文实例讲述了Java实现的求解经典罗马数字和阿拉伯数字相互转换问题.分享给大家供大家参考,具体如下: 古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来 ...

  5. 罗马数字转阿拉伯数字两种实现

    记数方法 古罗马数字基本符号 基本字符 I V X L C D M 相应的阿拉伯数字表示为 1 5 10 50 100 500 1000 相同的数字连写,所表示的数等于这些数字相加得到的数,如:Ⅲ=3 ...

  6. 罗马数字与阿拉伯数字互转

    来源于 LeetCode Roman to Integer 描述: Given a roman numeral, convert it to an integer. Input is guarante ...

  7. python判断输入的是否为数字_python怎么判断是否为数字 将罗马数字转为阿拉伯数字,用python解...

    将阿拉伯数字转为罗马数字,用python解 class Solution(object): def intToRoman(self, num): """ :type nu ...

  8. 经典题:罗马数字和阿拉伯数字的相互转换

    package Linkedin;public class RomeToArabic {public static void main(String[] args) {String s = " ...

  9. 罗马数字转换阿拉伯数字(Java版,考虑较为全面)

    一. 前言 朋友的作业,本想在网上找个现成的改改就行啦.可是一番google.baidu之后,找到的要么不是Java版本的,要么就是考虑的不够全面.遂,笔者自己写了个,如有考虑不全面的地方,望大家能够 ...

  10. Java实现罗马数字转换为阿拉伯数字

    Java实现罗马数字转换为阿拉伯数字 个人原创,谢谢支持 逻辑规则 实现代码 个人原创,谢谢支持 代码个人编写,实测有效,欢迎转载本文链接.https://blog.csdn.net/u0147302 ...

最新文章

  1. (0079)iOS开发之安全策略之HTTPS(1)
  2. qt 回调函数设置界面_回调函数实现类似QT中信号机制(最简单)
  3. 如何写好技术文章(看张鑫旭老师的直播总结
  4. 双显示器设置:如何设置一台电脑两个显示器
  5. 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  6. 判断一棵树是否为完全二叉树的算法c语言_别再翻了,面试二叉树看这 11 个就够了!||CSDN博客精选...
  7. [FJWC2018]欧拉函数
  8. pa100k数据集_Spark 处理MovieLens 100k数据集案例
  9. QQ vx 刷屏神器!!
  10. python3爬妹子图_python3爬妹子图
  11. 机器学习————神经网络
  12. 如何治理 Electron 版本淘宝直播应用崩溃?
  13. Flutter技术与实战(6)
  14. Linux之基础IO
  15. Java读.xlsx表格
  16. G1调优常用参数及其作用
  17. Matlab打开LabVIEW的tdm/tdms文件
  18. 微信Mac正式版上线!!不仅支持发布朋友圈,还能浏览朋友圈相册
  19. Python爬虫爬取数据以Json格式保存并解决中文乱码问题
  20. JSP电子商务试点网站myeclipse开发mysql数据库BS模式java编程网页结构详细设计

热门文章

  1. boost::hana::count_if用法的测试程序
  2. boost::king_ordering用法的测试程序
  3. ITK:向量值图像像素的变换幅度
  4. ITK:侵蚀灰度图像
  5. ITK:计算网格上的测地距离
  6. VTK:可视化之BoxClipUnstructuredGrid
  7. OpenCV Hit or Miss 击中或没打中的实例(附完整代码)
  8. OpenCV扫描图像,查找表和时间测量
  9. Qt Creator在设备上预览
  10. OpenGL EnvironmentMapping环境映射的实例