البرمجة

خوارزمية برمجية لفحص وجود رقم في عدد بدون استخدام مصفوفات

بالتأكيد، سأقوم بتوجيهك خطوة بخطوة على كيفية تصميم الخوارزمية التي تقوم بفحص ما إذا كان العدد A يحتوي على العدد B أم لا، دون استخدام مصفوفات أو أي هياكل بيانات متقدمة. سنقوم بالتحقق من كل رقم في A بشكل فردي ومقارنته بالرقم B.

لنبدأ بتعديل الدالة وتوضيح الخوارزمية:

c
#define _CRT_SECURE_NO_WARNINGS #include int containsNumber(int num, int target) { while (num > 0) { int digit = num % 10; // احصل على آخر رقم في العدد num num /= 10; // قم بحذف الرقم الأخير من العدد num if (digit == target) { return 1; // إذا كان الرقم المستهدف موجود في العدد، ارجع 1 (صحيح) } } return 0; // إذا لم يتم العثور على الرقم المستهدف، ارجع 0 (خاطئ) } int main(void) { int num, target; printf("الرجاء إدخال العدد الأول: "); scanf("%d", &num); printf("الرجاء إدخال العدد الثاني: "); scanf("%d", &target); int result = containsNumber(num, target); printf("النتيجة: %d\n", result); return 0; }

في هذا الكود، تم إضافة دالة containsNumber التي تأخذ رقمين وتقوم بالتحقق مما إذا كان الرقم الثاني موجود في الرقم الأول. تستخدم الدالة حلقة while لفحص كل رقم في العدد الأول بشكل فردي وتقارنه بالرقم الثاني. إذا تم العثور على الرقم، يتم إرجاع 1، وإلا يتم إرجاع 0.

يرجى تجربة هذا الكود وإعلامي إذا كنت بحاجة إلى مساعدة إضافية أو توضيح في أي جزء من الخوارزمية.

المزيد من المعلومات

بالطبع، سأقدم مزيد من التوضيح حول الكود وكيف يعمل الخوارزمية.

  1. دالة containsNumber:

    • تبدأ الدالة بحلقة while تستمر حتى يصبح العدد الأول num أقل من أو يساوي صفر.
    • في كل تكرار، يتم الحصول على آخر رقم في العدد num باستخدام num % 10.
    • يتم حذف الرقم الأخير من num باستخدام num /= 10.
    • يتم مقارنة الرقم المحصل مع الرقم الثاني target. إذا كانا متساويين، يتم إرجاع 1.
    • إذا انتهت الحلقة دون العثور على الرقم، يتم إرجاع 0.
  2. الدالة main:

    • يُطلب من المستخدم إدخال العدد الأول (num) والعدد الثاني (target).
    • يتم استدعاء الدالة containsNumber وتمرير العدد الأول والعدد الثاني إليها.
    • الناتج يخزن في متغير result.
    • يتم طباعة النتيجة.
  3. مثال:

    • إذا قام المستخدم بإدخال num = 2452325678 و target = 7، ستعود الدالة بقيمة 1 لأن الرقم 7 موجود في العدد 2452325678.
    • إذا قام بإدخال num = 2134 و target = 5، ستعود الدالة بقيمة 0 لأن الرقم 5 غير موجود في العدد 2134.

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

زر الذهاب إلى الأعلى