Dado un número entero N , la tarea es encontrar el número de días impares en los años del 1 al N.
Días impares: el número de días impares se refiere a los días que quedan en un año determinado cuando los días se convierten en semanas. Digamos que un año ordinario tiene 365 días, es decir, 52 semanas y un día impar. Esto significa que, de los 365 días de un año ordinario, 364 días se convertirán en 52 semanas y quedará un día. Este día se conoce como 1 día impar.
- Simplemente el módulo del número total de días por 7 (días en una semana) nos da el número de días impares.
- Su valor se encuentra entre 0 y 6 solamente. [0, 6]
- Año bisiesto: cada año divisible por 400 o por 4 pero no por 100
- Año Ordinario: Años Excepto Años Bisiestos
- Cada Año Ordinario tiene 1 día impar.
- Cada año bisiesto tiene 2 días impares.
Ejemplos:
Entrada: N = 8
Salida: 3
De los 8 años, 4 y 8 son los únicos años bisiestos.
(6 x 1) + (2 x 2) = 10 es decir, 1 semana y 3 días
Entrada: N = 400
Salida: 0
Acercarse:
- Cuente el número de años ordinarios y el número de años bisiestos de N años dados.
- Calcular el número total de días.
- Imprime el módulo(7) del número total de días.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <iostream> using namespace std; // Function to return the count of odd days int oddDays(int N) { // Count of years divisible // by 100 and 400 int hund1 = N / 100; int hund4 = N / 400; // Every 4th year is a leap year int leap = N >> 2; int ord = N - leap; // Every 100th year is divisible by 4 // but is not a leap year if (hund1) { ord += hund1; leap -= hund1; } // Every 400th year is divisible by 100 // but is a leap year if (hund4) { ord -= hund4; leap += hund4; } // Total number of extra days int days = ord + leap * 2; // modulo(7) for final answer int odd = days % 7; return odd; } // Driver code int main() { // Number of days int N = 100; cout << oddDays(N); return 0; }
Java
// Java implementation of the approach class GFG { // Function to return the count of odd days static int oddDays(int N) { // Count of years divisible // by 100 and 400 int hund1 = N / 100; int hund4 = N / 400; // Every 4th year is a leap year int leap = N >> 2; int ord = N - leap; // Every 100th year is divisible by 4 // but is not a leap year if (hund1 > 0) { ord += hund1; leap -= hund1; } // Every 400th year is divisible by 100 // but is a leap year if (hund4 > 0) { ord -= hund4; leap += hund4; } // Total number of extra days int days = ord + leap * 2; // modulo(7) for final answer int odd = days % 7; return odd; } // Driver code public static void main(String args[]) { // Number of days int N = 100; System.out.print(oddDays(N)); } }
Python3
# Python3 implementation of the approach # Function to return the count of odd days def oddDays(N): # Count of years divisible # by 100 and 400 hund1 = N // 100 hund4 = N // 400 # Every 4th year is a leap year leap = N >> 2 ordd = N - leap # Every 100th year is divisible by 4 # but is not a leap year if (hund1): ordd += hund1 leap -= hund1 # Every 400th year is divisible by 100 # but is a leap year if (hund4): ordd -= hund4 leap += hund4 # Total number of extra days days = ordd + leap * 2 # modulo(7) for final answer odd = days % 7 return odd # Driver code # Number of days N = 100 print(oddDays(N)) # This code is contributed # by mohit kumar
C#
// C# implementation of the approach using System; class GFG { // Function to return the count of odd days static int oddDays(int N) { // Count of years divisible // by 100 and 400 int hund1 = N / 100; int hund4 = N / 400; // Every 4th year is a leap year int leap = N >> 2; int ord = N - leap; // Every 100th year is divisible by 4 // but is not a leap year if (hund1 > 0) { ord += hund1; leap -= hund1; } // Every 400th year is divisible by 100 // but is a leap year if (hund4 > 0) { ord -= hund4; leap += hund4; } // Total number of extra days int days = ord + leap * 2; // modulo(7) for final answer int odd = days % 7; return odd; } // Driver code static void Main() { // Number of days int N = 100; Console.WriteLine(oddDays(N)); } } // This code is contributed by mits
PHP
<?php // PHP implementation of the approach // Function to return the count of odd days function oddDays($N) { // Count of years divisible // by 100 and 400 $hund1 = floor($N / 100); $hund4 = floor($N / 400); // Every 4th year is a leap year $leap = $N >> 2; $ord = $N - $leap; // Every 100th year is divisible by 4 // but is not a leap year if ($hund1) { $ord += $hund1; $leap -= $hund1; } // Every 400th year is divisible by 100 // but is a leap year if ($hund4) { $ord -= $hund4; $leap += $hund4; } // Total number of extra days $days = $ord + $leap * 2; // modulo(7) for final answer $odd = $days % 7; return $odd; } // Driver code // Number of days $N = 100; echo oddDays($N); // This code is contributed by Ryuga ?>
Javascript
<script> // JavaScript implementation of the approach // Function to return the count of odd days function oddDays(N) { // Count of years divisible // by 100 and 400 var hund1 = N / 100; var hund4 = N / 400; // Every 4th year is a leap year var leap = N >> 2; var ord = N - leap; // Every 100th year is divisible by 4 // but is not a leap year if (hund1 > 0) { ord += hund1; leap -= hund1; } // Every 400th year is divisible by 100 // but is a leap year if (hund4 > 0) { ord -= hund4; leap += hund4; } // Total number of extra days var days = ord + leap * 2; // modulo(7) for final answer var odd = days % 7; return odd; } // Driver code // Number of days var N = 100; document.write(oddDays(N).toFixed()); // This code is contributed by todaysgaurav </script>
5
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por Krishna_Yadav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA