--- title: Roman Numeral Converter localeTitle: تحويل الأرقام الرومانية --- ![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:") ### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة: ستقوم بإنشاء برنامج يقوم بتحويل عدد صحيح إلى عدد روماني. #### روابط ذات صلة * [الأرقام الرومانية](http://www.mathsisfun.com/roman-numerals.html) * [Array.splice ()](http://forum.freecodecamp.com/t/javascript-array-prototype-splice/14307) * [Array.indexOf ()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) * [Array.join ()](http://forum.freecodecamp.com/t/javascript-array-prototype-join/14292) ## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1 إنشاء صفيفين ، واحد مع الأرقام الرومانية والآخر مع ما يعادل العشري للأشكال الجديدة سيكون مفيدا للغاية. > _حاول أن تحل المشكلة الآن_ ## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2 إذا قمت بإضافة الأرقام إلى الصفائف التي تمر قبل تقديم الحرف الجديد ، مثل القيم لـ 4 و 9 و 40 ، فسيوفر لك الكثير من التعليمات البرمجية. > _حاول أن تحل المشكلة الآن_ ## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3 لا يمكنك الحصول على أكثر من ثلاثة أرقام رومانية متتالية معًا. > _حاول أن تحل المشكلة الآن_ ## تنبيه المفسد! ![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif) **الحل في المستقبل!** ## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود: `var convertToRoman = function(num) { var decimalValue = [ 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 ]; var romanNumeral = [ 'M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I' ]; var romanized = ''; for (var index = 0; index < decimalValue.length; index++) { while (decimalValue[index] <= num) { romanized += romanNumeral[index]; num -= decimalValue[index]; } } return romanized; } // test here convertToRoman(36); ` ![:rocket:](https://forum.freecodecamp.com/images/emoji/emoji_one/rocket.png?v=3 ":صاروخ:") [تشغيل الكود](https://repl.it/CLmf/0) ### شرح الشفرة: * نبدأ من خلال إنشاء صفيفين مع التحويل الافتراضي مع مؤشرات مطابقة. هذه تسمى `decimalValue` و `romanNumeral` . نحن أيضا إنشاء متغير سلسلة فارغة ، `romanized` ، والتي سوف تستضيف الرقم الروماني النهائي. * باستخدام حلقة for ، نقوم بالمرور من خلال `decimalValue` صفيف `decimalValue` . نستمر في التكرار حتى يتم احتواء القيمة الموجودة في `index` الحالي على `num` . * بعد ذلك، أضفنا رومانية وانخفاض `num` بما يعادل عشري. * وأخيرًا ، نعيد قيمة `romanized` . #### روابط ذات صلة * [للحلقات](http://forum.freecodecamp.com/t/javascript-for-loop/14666) * في حين الحلقات ## ![:sunflower:](https://forum.freecodecamp.com/images/emoji/emoji_one/sunflower.png?v=3 ":دوار الشمس:") حل الشفرة المتوسطة: `function convertToRoman(num) { var romans = ["I", "V", "X", "L", "C", "D", "M"], ints = [], romanNumber = [], numeral = ""; while (num) { ints.push(num % 10); num = Math.floor(num/10); } for (i=0; i نرى ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": point_right:") [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) كمرجع.