¿Por qué este código genera 8 en lugar de 5?

programación


Estoy tratando de solucionar un problema de HackerRank en el que debo concatenar los elementos de fecha en un solo número entero y verificar si el número formado por la concatenación es divisible por 4 o 7. Estoy usando un bucle while para recorrer las fechas entre los fechas dadas, pero mi código imprime 8 en lugar de 5 en la terminal para el caso de prueba con la fecha de inicio “08-02-2025” y la fecha de finalización “09-04-2025”. Ambas fechas son inclusivas.

Lo que he probado:

C#
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をコピーしました