阿拉伯数字

LeetCode:Integer to Roman

吃可爱长大的小学妹 提交于 2020-03-01 10:14:56
1、题目名称 Integer to Roman (阿拉伯数字到罗马数字的转换) 2、题目地址 https://leetcode.com/problems/integer-to-roman 3、题目内容 英文:Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. 中文:给出一个整数,将它转换成罗马数字。输入在1-3999之间。 4、题目分析 将阿拉伯数字转换为罗马数字,首先需要了解一下罗马数字的生成规则。罗马数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000),它的生成规则较为复杂,具体可以参考维基百科条目:罗马数字( 中文 | 英文 )。虽然写罗马数字是件比较繁琐的事情,但将十进制数字转换为罗马数字,却有一个简单的规律,可以从下面这张表中看到: 可以看到,与十进制数字相比,虽然在个位、十位、百位、千位这些数位上罗马数字的写法各不相同,但却都有着共同规律。从纵向比较看,每一个数位的写法只和该数位对应的一倍、五倍、十倍对应的字母有关。如8的罗马数字是VIII(5+1+1+1),80是LXXX(50+10+10+10),800是DCCC(500+100+100+100)

【翻译】学术写作中的数字

折月煮酒 提交于 2020-01-27 00:27:38
学术写作中的数字 本文翻译自 University of New England 的网络资源。 原文 pdf 可通过超链接下载。 英语水平一般,主要翻译用于自己学习,轻喷。 学术写作中的数字写作规则在各个学术领域中各有不同。对于非学术写作来说,数字的书写规范并不是一个重要的方面。但是,对于科学和科技写作来说,它们有特有的数字写作规范。关于数字使用的标准学术写作规定有以下几方面: 何时使用单词来书写数字 (When to write numbers in words) 如何避免句子中由于数字引起混淆不清 (How to avoid confusion with numbers in a sentence) 何时使用阿拉伯数字来书写数字 (When to use digits for numbers) 如何正确地书写数字 (How to write numbers correctly) 语法检查工具 不会帮助你检查学术写作中的数字的合适表达方式。当你书写和校对你的文章时,你需要自己正确地学习和使用书写数字的规范。 1 When to write numbers in words 1-1 100 以下的数字,整百整千以及顺序数 在一般的学术写作中,对于上述这三类数字,通常使用单词来书写。 特例:在第 3 节(何时使用阿拉伯数字来书写数字)中说明。 示例: (√)The country

java 将中文数字转阿拉伯数字

浪子不回头ぞ 提交于 2020-01-26 02:44:26
java 将中文数字转为阿拉伯数字 由于项目需求要将中文数字转为阿拉伯数字,找了一些博客有些不满足需求。于是参考了一些博客完成以下代码 /** * 中文数字 */ private static char [ ] cnArr_a = new char [ ] { '零' , '一' , '二' , '三' , '四' , '五' , '六' , '七' , '八' , '九' } ; private static char [ ] cnArr_A = new char [ ] { '零' , '壹' , '贰' , '叁' , '肆' , '伍' , '陆' , '柒' , '捌' , '玖' } ; private static final String allChineseNum = "零一二三四五六七八九壹贰叁肆伍陆柒捌玖十拾百佰千仟万萬亿" ; /** * 中文单位 */ private static char [ ] unit_a = new char [ ] { '亿' , '万' , '千' , '百' , '十' } ; private static char [ ] unit_A = new char [ ] { '亿' , '萬' , '仟' , '佰' , '拾' } ; private static final String allChineseUnit =

中文数字转阿拉伯数字

久未见 提交于 2020-01-12 02:23:50
中文数字转阿拉伯数字 中文数字的权位是明的,阿拉伯数字的权位则隐含在数字的位置中。怎么将文字权位转换为数字权位,下面解析。 转换的基本方法 对于十进制阿拉伯数字,数字的所在位数就是该数字与10的倍数关系。个位就是1倍,十位就是10倍,以此类推。通过这个关系,可以将阿拉伯数字隐含的权位转换成10的倍数表示,比如“四万两千五百一十二”,等于 4*10000+2*1000+5*100+1*10+3*1. 由上述可知,从中文数字转阿拉伯数字的基本方法就是从中文数字逐个识别出数字和权位的组合,然后根据权位和阿拉伯数字倍数的对应关系计算出每个数字和权位的值,最后求和得到结果。 除上述外,因节权位常和其他权位连在一起使用;在设计算法时,由于零没有权位,因此可以直接跳过零。节权位比较特殊,它不是与之相邻的数字的倍数,二十整个小节的倍数,转换过程中要临时保存每个节权位出现前的小节的值。 代码实现 <?php class ChineseToNumber { public $NUMS = array ( '一' = > '1' , '二' = > '2' , '三' = > '3' , '四' = > '4' , '五' = > '5' , '六' = > '6' , '七' = > '7' , '八' = > '8' , '九' = > '9' , '零' = > '' ) ; public $b

PythonTip挑战题(16-25)

北城余情 提交于 2019-12-02 05:53:06
16.人民币金额打印 银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序。 在中文大写方式中,0到10以及100、1000、10000被依次表示为: 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万 以下的例子示范了阿拉伯数字到人民币大写的转换规则: 1 壹圆 11 壹拾壹圆 111 壹佰壹拾壹圆 101 壹佰零壹圆 1000 负壹仟圆 1234567 壹佰贰拾叁万肆仟伍佰陆拾柒圆 现在给你一个整数a(|a|<100000000), 请你打印出人民币大写表示 例如:a = 90901001 则输出:玖仟零玖拾万壹仟零壹圆 a = 90901001 digit = [ u '零' , u '壹' , u '贰' , u '叁' , u '肆' , u '伍' , u '陆' , u '柒' , u '捌' , u '玖' ] weight = [ u '圆' , u '拾' , u '佰' , u '仟' , u '万' , u '拾' , u '佰' , u '仟' ] Z = [ ( u '零仟' , u '零佰' , u '零拾' , u '零零零' , u '零零' , u '零万' , u '零圆' ) , ( u '零' , u '零' , u '零' , u '零' , u '零' , u '万' , u '圆'

罗马数字转阿拉伯数字

自古美人都是妖i 提交于 2019-12-01 16:45:20
罗马数字转阿拉伯数字 1.罗马数字是位置计数吗?它的缺点是什么? 答:罗马数字不是位置计数 它的缺点:①无法使用罗马数字表示0。 ②数字表示麻烦,无法直观的表示数字。 ③书写繁难。 2.把你的8位学号转化成罗马数字 答:学号:20191330 转换后:(由于Markdown找不到上划线语法,所以用图片代替) 3.参考上面的博客,用Python写一个罗马数字转化为阿拉伯数字的程序,并验证上面你的学号对不对 来源: https://www.cnblogs.com/leo-skr/p/11693670.html

13. Roman to Integer

試著忘記壹切 提交于 2019-11-29 10:25:01
题目描述(简单难度) 题目描述:和上12题恰好相反,本题是将将罗马数字转换成阿拉伯数字 。 解法一 其实这种解法具有先验知识。 如果我们输入的罗马数字没有特殊情况,就直接转换为对应的阿拉伯数字。 那么什么时候会出现特殊情况呢? 就是当4,9,40,90,400,900这几种情况出现时,要相对应减去一定的值,再按照正常的结果进行转换。 public class Roman_to_Integer { public static int romantoint(String s) { int sum=0; if(s.indexOf("IV")!=-1) {sum-=2;}//求元素索引 if(s.indexOf("IX")!=-1){sum-=2;} if(s.indexOf("XL")!=-1){sum-=20;} if(s.indexOf("XC")!=-1){sum-=20;} if(s.indexOf("CD")!=-1){sum-=200;} if(s.indexOf("CM")!=-1){sum-=200;} char[] c=s.toCharArray();//字符串转换为数组 for(int count=0;count<=s.length()-1;count++) { if(c[count]=='M') sum+=1000; if(c[count]=='D') sum+