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

السؤال

Recommended Posts

  • 0
نشر

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

أولا وقبل كتابة الكود يجب التفكير مليا في خطوات الحل، كيف يمكننا أن نعرف إذا كان العدد يقسم على 6 أم لا ؟

سنقوم بإرجاع باقي القسمة عن طريق الmodulus الذي يعبر عنه بالرمز " % " في لغة c++

مثال:

2 % 10 تساوي صفر لأن المتبقي من قسمة 10 على 2 هو صفر.

إذا سنستخدم الmodulus للتحقق من إمكانية قسمة الرقم على 6 بدون باقي.

يجب علينا تطبيق هذا الشرط على الارقام من صفر إلى 100، يمكننا حل هذه المشكلة بإستخدام for loop.

أطيب الأمنيات بالتوفيق.

  • 0
نشر

مرحبًا Haya

يمكنكي طباعة الأرقام التي تقبل القسمة على 6 (أو أي رقم آخر) بإحدى الطرق التالية:

  1. المرور على كل الأرقام، والتحقق من ناتج عملية باقي القسمة num%6 والذي يجب أن يكون صفرًا في هذه الحالة.
  2. الطريقة الأسرع هي تغيير جملة الزيادة في حلقة for لتضيف لمتغير الحلقة num قيمة +6، كالتالي:
for(num=6; num>=100; num=num+6)

// أو هكذا
for(num=6; num>=100; num+=6)

بإحدى هذه الطرق ستكون سيتم طباعة الأرقام القابلة للقسمة على 6 فقط

لاحظي أن الطريقة الثانية أفضل وأسرع من الطريقة الأولى لأننا لن نضطر للمرور على كل الأرقام، فعلى سبيل المثال: لطباعة كل الأرقام التي تقبل القسمة على 49 في الأرقام من 1 إلى 10000، بإستخدام الطريقة الأولى سنضطر إلى التأكد من كل رقم من 1 إلى 10000 بينما الطريقة الثانية ستقفز من رقم إلى الذي يليه مباشرة.

  • 0
نشر
بتاريخ 14 دقائق مضت قال سامح أشرف:

مرحبًا Haya

يمكنكي طباعة الأرقام التي تقبل القسمة على 6 (أو أي رقم آخر) بإحدى الطرق التالية:

  1. المرور على كل الأرقام، والتحقق من ناتج عملية باقي القسمة num%6 والذي يجب أن يكون صفرًا في هذه الحالة.
  2. الطريقة الأسرع هي تغيير جملة الزيادة في حلقة for لتضيف لمتغير الحلقة num قيمة +6، كالتالي:

for(num=6; num>=100; num=num+6)

// أو هكذا
for(num=6; num>=100; num+=6)

بإحدى هذه الطرق ستكون سيتم طباعة الأرقام القابلة للقسمة على 6 فقط

لاحظي أن الطريقة الثانية أفضل وأسرع من الطريقة الأولى لأننا لن نضطر للمرور على كل الأرقام، فعلى سبيل المثال: لطباعة كل الأرقام التي تقبل القسمة على 49 في الأرقام من 1 إلى 10000، بإستخدام الطريقة الأولى سنضطر إلى التأكد من كل رقم من 1 إلى 10000 بينما الطريقة الثانية ستقفز من رقم إلى الذي يليه مباشرة.

أنصح بتطبيق الطريقة الثانية التي نشرها الأخ سامح حيث أنها أكثر منطقية وإختصارا.

توضيح: مضاعفات الرقم ستة هي التي تقسم عليه بدون باقي فلذلك موضوع الmodulus غير ضروري في هذه الحالة.

أشكرك@سامح أشرف

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...