المسارات
/
Objective-C
Objective-C
/
التمارين
/
الأرقام الرومانية
الأرقام الرومانية

الأرقام الرومانية

متوسط

مقدمة

اليوم، يستخدم معظم الناس في العالم الأرقام العربية (0–9). لكن لو سافرت ألفي سنة إلى الوراء، لوجدت أن معظم الأوروبيين كانوا يستخدمون الأرقام الرومانية بدلًا منها.

لكتابة رقم روماني نستخدم الأحرف اللاتينية التالية، ولكل منها قيمة:

M D C L X V I
1000 500 100 50 10 5 1

الرقم الروماني هو تسلسل من هذه الأحرف، وقيمته مجموع قيم هذه الأحرف. على سبيل المثال، قيمة XVIII هي 18 (10 + 5 + 1 + 1 + 1 = 18).

لكن هناك قاعدة واحدة تجعل الأمر أكثر صعوبة، وهي أنه لا يمكن استخدام الحرف نفسه أكثر من ثلاث مرات متتالية. وهذا يعني أننا لا نستطيع التعبير عن أعداد مثل 4 بالكتابة IIII التي تبدو طبيعية. بدلًا من ذلك، نستخدم في تلك الأعداد أسلوب طرح بين حرفين. لذلك نفكّر في 4 لا على أنها 1 + 1 + 1 + 1 بل على أنها 5 - 1. وبما يربك قليلًا تفكيرنا الحديث، نكتب العدد الأصغر أولًا. وهذا ينطبق فقط في الحالات التالية: 4 (IV)، و9 (IX)، و40 (XL)، و90 (XC)، و400 (CD)، و900 (CM).

الترتيب مهم في الأرقام الرومانية! يجب ترتيب الأحرف (والتراكيب الخاصة أعلاه) تنازليًا حسب القيمة من اليسار إلى اليمين.

إليك بعض الأمثلة:

 105 => CV
---- => --
 100 => C
+  5 =>  V
 106 => CVI
---- => --
 100 => C
+  5 =>  V
+  1 =>   I
 104 => CIV
---- => ---
 100 => C
+  4 =>  IV

ومثال أخير أكثر تعقيدًا:

 1996 => MCMXCVI
----- => -------
 1000 => M
+ 900 =>  CM
+  90 =>    XC
+   5 =>      V
+   1 =>       I

التعليمات

مهمتك هي تحويل عدد من الأرقام العربية إلى الأرقام الرومانية.

في هذا التمرين، لا نعنى إلا بالأرقام الرومانية التقليدية، التي يكون فيها أكبر عدد هو MMMCMXCIX (أو 3,999).

Note

هناك طرق عديدة ومختلفة للتحويل بين الأرقام العربية والأرقام الرومانية. نوصي بأن تتبع أسلوبًا بسيطًا في البداية لتتعرف على مفهوم الأرقام الرومانية، ثم تبحث عن طرق أكثر كفاءة.

احرص على مشاهدة فيديو Deep Dive الخاص بنا في النهاية لاستكشاف الأساليب المختلفة التي يمكنك اتباعها!


المصدر

The Roman Numeral Kataيفتح الرابط في نافذة أو علامة تبويب جديدة
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Objective-C Exercism

مستعد لبدء الأرقام الرومانية؟

سجّل في Exercism لتتعلّم وتتقن Objective-C عبر 51 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.

تعمّق في الأرقام الرومانية!

استكشف مجموعة متنوعة من الحلول المختلفة لهذا التمرين الصعب، بدءًا من الاستدعاء الذاتي وصولًا إلى البحث المعتمد على الجداول، وحل يستفيد من الأعداد ذات الأساس المختلط، وبعض أساليب الغش المبسطة من Common Lisp.