اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر (معدل)

أهلا بك،

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

public int ReverseInt(int num)
{
    int result=0;
    while (num>0) 
    {
       result = result*10 + num%10;
       num /= 10;
    }
    Console.Write("Number in reverse order: " + result);
    return result;
}

 لاحظ في البداية أن الأسهل إستخدام حلقة التكرار من نوع while وليس for لكن إذا أردت التغيير فلن تحتاج إلا لاستبدال جملة while فقط بجملة for

 for(int i=0;num>0;i++) 

في كلا الحالتين لهذة الطريقة سيطبع الناتج خارج حلقة التكرار.

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

من خلال التتبع ستلاحظ أن عدد مرات التكرار سيكون نفس عدد الأرقام التي يتكون منها num

في الوضع البتدائي:

  num=123       result=0     الشرط لعبور حلقة التكرار صحيح ومتحقق

لحلقة التكرار الأولى:

result=0*10+123%10         result=3

num=123/10            num=12

لحلقة التكرار الثانية:

result=3*10+12%10         result=32

num=12/10            num=1

لحلقة التكرار الثالثة:

result=32*10+1%10         result=321

num=1/10            num=0

النواتج:

num=0            result=321   الشرط لدخول حلقة التكرار غير متحقق

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

بالتوفيق 

 

تم التعديل في بواسطة Entesar ElBanna
no reason

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...