تحدي السنة الكبيسة

تحدي عدد اﻷيام في السنة

قم بكتابة دالة daysInYear(year) تأخذ رقم السنة كمُدخل (مثلاً 2021) وتقوم بإرجاع عدد اﻷيام في السنة، مع العلم أن هناك سنوات تساوي 365 يوم وهناك سنوات تساوي 366 يوم إذا كانت سنة كبيسة، والسنة الكبيسة يكون فيها شهر فبراير 29 يوم بدلاً من 28 لذلك تكون 366 يوم،

وأما عن خوارزمية معرفة هل السنة كبيسة أم لا فهي:

إذا كان رقم السنة قابلاً للقسمة على 4 فهي سنة كبيسة؛ ولكن إذا كان رقم السنة قابلاً للقسمة على 4 و في نفس الوقت قابلاً للقسمة على 100 فإنّ هذه السنة ليست كبيسة، إلا إذا كانت تقبل القسمة على 400. على سبيل المثال فإنّ السنوات 2000، 2400 تُعدّ سنوات كبيسة رغم أنها تقبل القسمة على 100 ولكنها تقابل القسمة على 400 فإذن هي كبيسة، في حين أنّ السنوات 1800، 1900، 2100، 2200، 2300، 2500 لا تُعدّ سنوات كبيسة ﻷنها تقبل القسمة على 100 (ولا تقبل على 400)، وبناءً على القواعد المُتبعة، فإنّ السنوات الآتية تُعدّ سنوات كبيسة: 2020، 2024، 2028، 2032، 2036، وهكذا.. ﻷنها تقبل القسمة على (4)

الملخص: كل السنوات التي تقبل القسمة على 4 هي كبيسة إلا في حالة واحدة: السنة تقبل القسمة على 100 ولا تقبل القسمة على 400 فإنها تكون سنة عادية


المساهمين

وجدت خطأ أو تريد المساهمة في محتوى الدرس؟ عدل الصفحة على Github