لماذا يخرج هذا الرمز 8 بدلاً من 5


أحاول التغلب على مشكلة HackerRank حيث يُطلب مني ربط عناصر التاريخ في عدد صحيح واحد والتحقق مما إذا كان الرقم الذي تم تشكيله بواسطة التسلسل قابلاً للقسمة على 4 أو 7. أنا أستخدم حلقة while للتكرار عبر التواريخ بين تواريخ محددة ولكن الكود الخاص بي يطبع 8 بدلاً من 5 على الجهاز الطرفي لحالة الاختبار مع تاريخ البدء كـ “02-08-2025” وتاريخ الانتهاء “04-09-2025”. كلا التاريخين شاملان

ما حاولت:

ج #
public class Solution{
static void Main(string args[]){
     //read date from the user
     var input = Console.ReadLine();
     var date1 = input.Split(new char[]{' '})[0];
     var date2 = input.Split(new char[]{' '})[1];
     //Parse date objects out of the strings
     DateTime A = DateTime.Parse(date1);
     DateTime B = DateTime.Parse(date2);
     int lucky = 0;
     while(A<= B){
           //Get a string representation of the date and    //replace the hyphens
           var str = A.ToString("dd-MM-yyyy").Replace("-","");
            var i = Int32.Parse(str);
            if(i%4==0 || i%7 ==0)
                lucky ++;
            
         //Update the day A
         A = A.AddDays(1);
        }
        Console.WriteLine(lucky);
    }

}

コメント

タイトルとURLをコピーしました