Questions tagged «roman-numerals»

该标签表明挑战涉及罗马数字

7
数字作为圆形图形
首先,研究这个难题以了解您将要产生的东西。 您面临的挑战是编写一个程序或函数,该程序或函数将输出一个圆形图形(类似于拼图中的图形),并给出(以10为基数)介于1和100(含)之间的数字。这类似于此挑战,除了您将生成图形而不是罗马数字。以下圆圈从左到右代表数字1-10: 作为对谜题状态的答案,您的图形应该从内到外看起来像罗马数字,其中线条粗细代表罗马数字符号,整个图形代表数字。供您参考,这是您需要的线宽。每行和下一行之间应有3px的填充。 Number Roman Numeral Line Width 1 I 1px 5 V 3px 10 X 5px 50 L 7px 100 C 9px 请发布您的输出中的一两个示例。假设输入正确,标准漏洞等等。这是代码高尔夫,所以最少的字节获胜。如果出现平局,大多数选票将获胜。祝好运!

18
代码罗马化
挑战在于使任何罗马数字成为您选择的语言的有效代码。 他们应该不会出现串的内部或任何类似,但工作就像任何其他记号,文字如(阿拉伯语)数字,字符或字符串; 或变量/方法/功能标识符等 例如,在Java中,以下代码必须像i初始化为那样编译并运行42: int i = XLII; 数字的实际解析是次要的,因此您可以根据需要使用库,但这是一场人气竞赛,因此鼓励创造力。 如果存在这种情况,则不能使用任何实际使用罗马数字的语言。 祝好运。

29
那些贪婪的罗马人!
给定一个严格的正整数,请仅使用加法则返回最短的罗马数字。输出必须MDCLXVI按该顺序包含零个或多个每个字符。14因此,该数字必须为XIIII而不是XIV。 字符的数值为M= 1000,D= 500,C= 100,L= 50,X= 10,V= 5,I= 1。 例子 3 → III 4 → IIII 9 → VIIII 42 → XXXXII 796 → DCCLXXXXVI 2017 → MMXVII 16807 → MMMMMMMMMMMMMMMMDCCCVII

21
从1到100…在罗马数字中计数
编写一个从1到100的罗马数字计数程序,并通过标准输出打印这些数字。每个数字必须用空格分隔。 您不能使用任何内置函数来转换为罗马数字,也不能使用外部应用程序或库来进行转换。 理想的结果是 I II III IV V VI VII VIII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX XXI XXII XXIII XXIV XXV XXVI XXVII XXVIII XXIX XXX XXXI XXXII XXXIII XXXIV XXXV XXXVI XXXVII XXXVIII XXXIX XL XLI XLII XLIII XLIV XLV XLVI XLVII …

4
最佳速记罗马数字生成器
目标: 编写一个将数字作为输入并返回该数字的简写罗马数字作为输出的函数。 罗马数字符号: Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1,000 举一个我说“简写罗马数字”的意思的例子,让我们考虑找到一个代表1983年的罗马数字,因为那是我出生的年份。一种选择是按常规方式(10个字母)执行此操作: 1983年 = MCMLXXXIII =(1000-100 + 1000 + 50 + 30 + 3) 另一种选择是使用快捷方式(6个字符): 1983 = MXVIIM =(1000-(10 + 10)+ 1000 + 3) 你知道这意味着什么吗?!?!! ?? 如果我是罗马人,我每次写生日都可以保存4个字符!呜呜呜! 但是,在兴奋起来之前,我有一个问题要写,所以我可能应该定义速记罗马数字规则,以便我们都在同一页面上: 简写罗马数字规则: 始终从左到右考虑符号,直到没有其他要考虑的字符为止。 如果当前符号右侧没有高值符号: 将当前符号的值添加到该罗马数字的运行总计中。 …

4
在罗马时,算不算罗马人?
背景 该挑战的灵感源于该网站,该网站发布了下图: 该图向我们展示了250以下的最长罗马数字表达式是188,需要9个数字来表示。 挑战 用于表达最罗马数字的标准符号如下:{ I,V,X,L,C,D,M},其中人物的数值是M= 1000,D= 500,C= 100,L= 50,X= 10,V= 5,I= 1。 在此挑战中,您的目标是给定正整数n,计算可通过串联n个标准符号组成的有效罗马数字表示形式的数量。 然后,您的程序必须输出该计算的结果! 输入:正整数n。 输出:长度为n的有效罗马数字表达式的数量。 罗马数字表达规则 罗马数字最初只具有“加法”配对,这意味着数字始终按降序书写,并且所有数字的值之和就是数字的值。 后来,减法配对(为了减少大数字中的较小数字而使用)将较小的数字放置在较大的数字前面,从而缩短了罗马数字表达。减法对不能链接,如以下无效表达式中所示:IXL。 以下是加减配对的现代规则。 在减法对中,只有I,X和C可以用作前导数字。 我只能在减法对中放在V或X之前。 X只能在减法对中放在L或C之前。 在减法对中,C只能放在D或M之前。 除减法对之外,数字必须按降序排列(这意味着如果您删除每个减法对的前导数字,则数字将按降序排列)。 较小的面额不能等于或超过M,C和X。 D,L和V只能出现一次。 仅M可以重复4次或更多次。 进一步说明 我们将不会使用条形符号;相反,我们将简单地添加更多M来表示任何数字。 这些是我们罗马数字遵循的唯一规则。这意味着诸如的奇数表达式IVI在我们的系统中也将被视为有效。 还要记住,我们不计算长度为n的表达式的数目,因为有些数字具有多个表达式。相反,我们只计算有效表达式的数量。 测试用例 1 → 7 2 → 31 3 → 105 我手动检查了以上内容,因此请确保仔细检查测试用例,并尽可能添加更多内容! 获奖标准 这是一个高尔夫挑战赛,请尽情享受!我将只接受至少可处理1到9输入的解决方案。再多就是奖励! 编辑 根据评论者的要求,在下面或在此pastebin链接中,我算出n = 3 …

7
外观顺序:罗马数字版
挑战说明 我们遇到了一些涉及外观序列的挑战。快速提醒: 序列开头1, 该序列的后续项是通过枚举上一项中的每组重复数字而产生的, 因此,前几个术语是: 1 "one" 11 "one one" (we look at the previous term) 21 "two ones" 1211 "one two, one one" 111221 "one one, one two, two ones" 312211 "three ones, two twos, one one" 现在让我们做同样的事情,但是要使用罗马数字。我们从开始I并遵循相同的规则(我们将数字计数规则应用于字符,因此我们将其读IVX为one one, one five, one ten而不是one four, one ten或某种其他方式): I "one" II …

15
匹配罗马数字
挑战 给定一些输入字符串,如果它表示介于1(= I)和3999(= MMMCMXCIX)之间的正确罗马数字,则返回真实值,否则返回假值。 细节 输入是一个仅包含字符的非空字符串IVXLCDM。 罗马数字(我们在本次挑战中在此处使用)的定义如下: 我们仅使用以下符号: Symbol I V X L C D M Value 1 5 10 50 100 500 1000 要定义哪些字符串实际上是有效的罗马数字,可能最容易提供对话规则:写一个十进制数字a3 a2 a1 a0(每个ai数字代表一个数字。例如,表示792我们有a3=0, a2=7, a1=9, a0=2。)作为罗马数字,我们将其分解变成数十的力量。十的不同幂可以表示如下: 1-9: I, II, III, IV, V, VI, VII, VIII, IX 10-90: X, XX, XXX, XL, L, LX, LXX, LXXX, …

5
是否有更多的硬物或软物
与假设分析书的开头相切。 输入是一个由空格组成的矩形,如字符串,字符串列表等,其对象由#内部组成: ######## # # ######## ### #### ### #### ### 对象将始终是非相交,非接触的矩形。软对象的定义是#中间没有用填充的对象,而只是边界,而硬对象则是填充的对象。具有宽度或高度的对象<=2被认为是坚硬的。所有对象都是硬的或软的。 如果输入,输出中有更多的硬对象"Hard",如果较软,则输出"Soft",如果相等则输出"Equal"。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 这些情况不是全部输入,而是每个对象应表征的内容。实际输入将类似于问题顶部的ascii艺术。 硬 # #### ## ## ########## ########## ########## 柔软的 ### # # ### ################### # # # # # # ################### #### # # # # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

8
创建一个罗马数字计算器
创建一个用于罗马数字的基本计算器。 要求 支持+,-,*,/ 输入和输出应该期望只有一个每个符号减法前缀(即3不能IIV因为有两个I年代以前V) 处理的在最小支持现代标准约定的输入和输出必须减法原则,其中只有十的权力是由较大的数字相减(例如I,X,C需要减法而不是V,L,D)和减法不会从一些做多减法器的10倍(例如,IX必须支持但IC不是必需的)。 输入和输出应按值的顺序从左到右,从最大值开始(即19 = XIXnot IXX,10大于9) 从左到右,没有操作员优先级,就好像您在使用手持计算器一样。 支持1-4999之间的整个正数输入/输出(不需要V̅) 没有可以为您进行罗马数字转换的库 由您决定 区分大小写 输入上有空格或没有空格 如果获得十进制输出会发生什么。截断,无答案,错误等。 对您无法处理的输出该怎么办。负数或数字要大。 是否支持比最低要求更宽松地使用减法原理。 额外信用 -50-最多可处理99999。符号中必须包含外包装 样本输入/输出 XIX + LXXX (19+80) XCIX XCIX + I / L * D + IV (99+1/50*500+4) MIV 最短的代码获胜。

9
整数随着时间的推移来回移动
输入: 一个整数。 输出: 首先将整数转换为等效的罗马数字。 然后,将该罗马数字的每个大写字母转换为其ASCII / UNICODE十进制值。 并输出这些总和。 例: 1991 -> MCMXCI -> 77+67+77+88+67+73 -> 449 ^ input ^ output 罗马数字: 这是一个可能有用的罗马数字转换器。 挑战规则: 标准的罗马数字规则适用,因此没有其他替代形式 IIII或VIIII替代IV和IX*。 罗马数字超过1000的马克龙线是¯(UNICODE nr。175)。因此,一线算作+175,两线算作+350。 您可以使用任何类型的输入和输出类型,只要它代表整数即可。 测试用例将在 1 - 2,147,483,647。 *罗马数字规则(引自维基百科): 数字是通过组合符号并加上值而形成的,所以II两个(两个)和XIII十三(一个十和三个)也是如此。因为每个数字都有一个固定值,而不是代表10、100等的倍数,所以根据位置,不需要像207或1066这样的“位置保持”零。这些数字写成CCVII(两百,五和二)和MLXVI(一千,五十,十,五和一)。 符号从左到右按值的顺序排列,从最大开始。但是,在某些特定情况下,为避免连续重复四个字符(例如IIII或XXXX),通常按如下方式使用减法表示法: I放在前面V或X表示少一,所以四是IV(一小于五)而九是IX(一小于十) X放在前面L或C表示减去十,所以四十是XL(十小于五十),九十是XC(十小于一百) C放在前面D或M表示少一百个,因此四百个CD(一百个小于五百)和九百个CM(一百个小于一千) 例如,MCMIV一千零九十四个,1904年(M一千个,CM是九百零四IV)。 现代使用罗马数字的一些例子包括: 1954年为MCMLIV;1990年为MCMXC; 2014年作为MMXIV SOURCE 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 适用标准规则于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法,完整程序。你的来电。 默认漏洞是禁止的。 …

1
将加密的罗马数字转换为阿拉伯小数
编写一种算法,将字母序列解释为罗马数字。(请参阅下面的罗马数字规则) 每个不同的字母都有一个匹配的阿拉伯十进制值,没有最大值。但是您事先没有密钥,因此{A=10, I=1, X=5, ... Z=1000000}取决于您的解释。 挑战 通过读取输入 STDIN或等效和写入输出经由STDOUT或等效 有效输入是大小写字母的组合,即匹配 \[a-zA-Z]+\ 输入应经过验证,以查看字母序列是否可以解释为有效的罗马数字 如果输入通过验证,则有效输出应该是最低的阿拉伯十进制解释,并且所使用的键即Aa解释为4 {a=5, A=1} not 6 {A=5, a=1} 或 9 {a=10, a=1} 罗马数字规则 只能重复表示十次幂的字母,最多重复三次,总共重复四次,例如 II III XXXIX 如果将一个或多个字母放置在另一个价值更高的字母之后,请添加该金额 AAaa => 22 {A=10, a=1} (20 + 2 = 22) bbAAaa => 222 {b=100, A=10, a=1} (200 + 20 + 2 …

3
斐波那契的六进制
莱昂纳多·达·皮萨诺( Leonardo da Pisano)又名斐波那契( Fibonacci)在将印度-阿拉伯数字系统引入欧洲方面发挥了作用。在此之前,那里的数学家使用罗马数字以60为底数。 例如,两个的平方根可以近似为:一和二十四分之六十和五十一分之三千六百六十,写为:i xxiv li,其缩放比例取决于上下文。当时,“虚无”是已知的(即零),但在此数字系统中没有标准表示形式。 如果斐波那契忽略了他在旅途中遇到的这些新的十进制数字,他肯定会解决当前系统中的缺陷。这个改进的系统称为斐波那契(Fibonacci)的sexagesimals。 您的任务是编写一个程序,函数或代码片段,该片段采用ASCII或二进制格式的浮点数,并以60个基数罗马数字输出。输入可以是文件,控制台,命令行或函数参数,输出可以是文件或控制台,以最简单的为准。 输出可以是大写或小写,并且必须包括以下改进: 使用n或N表示空值,表示某个地点没有值,即 “零”(系统存在问题) 使用ë或ë以指示等对应于所述六十进制点(与系统的另一个问题) 使用中间的点·或星号*分隔罗马数字组(但系统还有另一个问题) 假设输入将是浮点数,尾数不大于lix·lix·lix·lix·lix。小于n·e·n·n·n·n·i的分数可以忽略。因此,如果输入具有这些限制,则最多可以输出十组带有一个e的罗马数字。 小于i的数字必须以n开头,以确保上下文清晰。 一些示例:input→ 输出 0→ n 1→ 我 60→ 我 0.1→ n·e·vi 3600→ i·n·n 10.5→ x·e·xxx 16777215→ i·xvii·xl·xx·xv 3.1415926536→ iii·e·viii·xxix·xliv·n·xlvii 输出必须避免在输出的尾数部分中不必要的前导n·,孤立的e或末尾的n。因此,例如,n·n·n·n·i,i·e和i·e·n·n·n·n·n是输入的不正确输出1。 输出中正负n·e·n·n·n·n·i的差在允许范围内且可以接受。 输入是您选择的语言中的任何合法浮点,因此只要输入不超出上述指定范围,就可以包含正或负指数。 最后,罗马数字内置插件是不允许的!

2
罗马数字转换器功能
创建最短函数以将罗马数字字符串转换为整数。 每个字母的规则可以在Wikipedia页面上找到。大于1,000的字母将带有括号,以表示其较高的价值。 要求: 必须将罗马数字1转换为500,000 必须在一分钟内完成 不使用可能提供优势的内置函数(例如:将罗马数字转换为整数的函数) 是功能 该函数不需要支持分数。任何无效的输入都应返回数字0。 最短的函数获胜。如果是平局,则得票最多的人获胜。 测试用例 输入值 III 输出量 3 输入值 IIII 输出量 0 输入值 XVI 输出量 16 输入值 (C)(D)(L)MMI 输出量 452001

8
转换为罗马数字!
您的任务是将给定的正整数从阿拉伯数字转换为罗马数字。 当您计数到4000时,事情就会变得困难。 罗马人通过在符号上方添加一条线将该符号乘以来做到这一点1 000。但是,上划线不能完全以ASCII显示。此外,还有两次将符号乘以的上划线1 000 000,然后是三次将符号乘以的上划线1 000 000 000,等等。 因此,我决定使用括号代替上划线。 这些符号可以单独放在括号中。例如,(VI)和和(V)(I)都是的有效表示形式6 000。(V)M也是6000的有效表示形式。 (I)是一种有效的表示方式1 000。 测试用例 Input: 1 Output: I Input: 2 Output: II Input: 3 Output: III Input: 4 Output: IV Input: 15 Output: XV Input: 40 Output: XL Input: 60 Output: LX Input: 67 Output: LXVII Input: 400 Output: …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.