Alphametics

Alphametics

صعب

التعليمات

إذا كان لديك أحجية ألفاميتيك، فابحث عن الحل الصحيح.

الألفاميتيك هو أحجية تُستبدل فيها حروف الكلمات بأرقام.

على سبيل المثال SEND + MORE = MONEY:

  S E N D
  M O R E +
-----------
M O N E Y

عند استبدالها بأرقام صالحة نحصل على:

  9 5 6 7
  1 0 8 5 +
-----------
1 0 6 5 2

هذا صحيح لأن كل حرف يُستبدل برقم مختلف، وبعد تحويل الكلمات إلى أرقام فإنها تشكّل مجموعًا صالحًا.

يجب أن يمثّل كل حرف رقمًا مختلفًا، ويجب ألا يكون الرقم الأول في عدد مكوّن من عدة أرقام صفرًا.

التنفيذ

Note

قد ترغب (أو قد لا ترغب!) في استدعاء الدالة permutations(a, t) من Combinatorics.jl في حلّك.

  • إذا كنت تعمل في المحرر على الإنترنت، فيمكنك استدعاء permutations(a ,t) بحرية لأنها موجودة بالفعل في فضاء الأسماء. ويمكنك رؤية الكود المصدري في التبويب المسمّى permutations.jl.
  • أما إذا كنت تعمل محليًا، فأضف include("permutations.jl") إلى أعلى ملف الحل لديك للوصول إلى نسخة من permutations(a, t) موجودة هناك.
Caution

إذا استخدمت Combinatorics.jl v1.0.3 محليًا، فإن permutations(a, t) بطيئة جدًا في الاختبارات الكبيرة. استخدم إما الملف المرفق permutations.jl، أو ارقِ إلى Combinatorics.jl v≥1.1.0، أو «اخفض» إلى v1.0.2.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Julia Exercism

مستعد لبدء Alphametics؟

سجّل في Exercism لتتعلّم وتتقن Julia عبر 35 مفهومًا128 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.