将数字转换为英文的数字时遇到了挑战,但这太简单了。给定数字0-100,您的任务是输出相应的法语数字。与英语相比,法语数字系统背后的逻辑更为复杂:
数字数 --------------- 0zéro(注意口音) 1个 2倍 3 trois 4夸脱 5 cinq 6 6 9月7日 8点 9块 10迪克斯 11次 12 douze 13 treize 14夸脱 15颗 16抢占 9月17日(字面上是十点七) 18 dix-huit 19 dix-neuf 20根 21 Vent等(没有连字符) 22文特 ... 30个 ... 40夸脱 ... 50 cinquante ... 60 Soixante ... 70 soixante-dix(字面意思是六十) 71 Soixante et onze ... 80夸脱(注意s;字面意思是二十二十) 81 quatre-vingt-un(注意连字符) ... 90夸脱 91夸脱 ... 99 quatre-vingt-dix-neuf(4 * 20 + 10 + 9) 100分
有关完整列表,请按照http://quizlet.com/996950/(http://www.webcitation.org/6RNppaJx0)。
进一步的规则/解释
- 当数字以1结尾时,单词EXCEPT之间总会有连字符。
- 当数字以1结尾时,在un或onze之前添加单词et(含义和)。(31 = trente et un)
- 但是,81和91的格式与其他数字相同。(81 =四分卫)
- 在60,系统从基数10切换到基数20。
- 网路上对此有一些细微的差异;有关问题,请参见上面链接的列表。
- 默认情况下不允许存在漏洞。
- 禁止使用外部资源(例如网站)以及将数字转换为数字或转换为法语的任何库,API,函数等。
- 这是代码高尔夫球,因此,字节数最少的答案将获胜。
- 如果有的话,请链接到在线编译器,以便轻松测试您的代码。
输入项
- 输入内容应取自您的语言,但您的语言仍需输入。(STDIN,命令行等)
- 输入将是单个字符串,由0到100之间(包括0和100之间)的整数组成(可选的前导零)。
- 您可以假设输入将始终格式正确。
输出量
- 结果将以您的语言输出到最方便的方法。(STDOUT,对话框等)
- 在输出中大小写无关紧要。
例子
针对这些测试您的代码:
输入输出 ------------- 0zéro 18 dix-huit 51 cinquante等 80夸脱 91夸脱 99 quatre-vent-dix-neuf