Dado un número entero N, encuentre el número de formas en que podemos elegir 3 números de {1, 2, 3…, N} tales que su suma sea par.
Ejemplos:
Input : N = 3 Output : 1 Explanation: Select 1, 2 and 3 Input : N = 4 Output : 2 Either select (1, 2, 3) or (1, 3, 4)
Recomendado: Resuelva primero en » PRÁCTICA «, antes de pasar a la solución.
Para obtener la suma incluso solo puede haber 2 casos:
- Toma 2 números impares y 1 par.
- Toma todos los números pares.
If n is even, Count of odd numbers = n/2 and even = n/2. Else Count odd numbers = n/2 +1 and even = n/2.
Caso 1 – El número de vías será: impar C 2 * par.
Caso 2 – El número de vías será: par C 3 .
Entonces, las formas totales serán Case_1_result + Case_2_result.
C++
// C++ program for above implementation #include <bits/stdc++.h> #define MOD 1000000007 using namespace std; // Function to count number of ways int countWays(int N) { long long int count, odd = N / 2, even; if (N & 1) odd = N / 2 + 1; even = N / 2; // Case 1: 2 odds and 1 even count = (((odd * (odd - 1)) / 2) * even) % MOD; // Case 2: 3 evens count = (count + ((even * (even - 1) * (even - 2)) / 6)) % MOD; return count; } // Driver code int main() { int n = 10; cout << countWays(n) << endl; return 0; }
Java
// java program for above implementation import java.io.*; class GFG { static long MOD = 1000000007; // Function to count number of ways static long countWays(int N) { long count, odd = N / 2, even; if ((N & 1) > 0) odd = N / 2 + 1; even = N / 2; // Case 1: 2 odds and 1 even count = (((odd * (odd - 1)) / 2) * even) % MOD; // Case 2: 3 evens count = (count + ((even * (even - 1) * (even - 2)) / 6)) % MOD; return (long)count; } // Driver code static public void main (String[] args) { int n = 10; System.out.println(countWays(n)); } } // This code is contributed by vt_m.
Python3
# Python3 code for above implementation MOD = 1000000007 # Function to count number of ways def countWays( N ): odd = N / 2 if N & 1: odd = N / 2 + 1 even = N / 2 # Case 1: 2 odds and 1 even count = (((odd * (odd - 1)) / 2) * even) % MOD # Case 2: 3 evens count = (count + ((even * (even - 1) * (even - 2)) / 6)) % MOD return count # Driver code n = 10 print(int(countWays(n))) # This code is contributed by "Sharad_Bhardwaj"
C#
// C# program for above implementation using System; public class GFG { static long MOD = 1000000007; // Function to count number of ways static long countWays(int N) { long count, odd = N / 2, even; if ((N & 1) > 0) odd = N / 2 + 1; even = N / 2; // Case 1: 2 odds and 1 even count = (((odd * (odd - 1)) / 2) * even) % MOD; // Case 2: 3 evens count = (count + ((even * (even - 1) * (even - 2)) / 6)) % MOD; return (long)count; } // Driver code static public void Main () { int n = 10; Console.WriteLine(countWays(n)); } } // This code is contributed by vt_m.
PHP
<?php // PHP program for // above implementation $MOD = 1000000007; // Function to count // number of ways function countWays($N) { global $MOD; $count; $odd =$N / 2; $even; if ($N & 1) $odd = $N / 2 + 1; $even = $N / 2; // Case 1: 2 odds // and 1 even $count = ((($odd * ($odd - 1)) / 2) * $even) % $MOD; // Case 2: 3 evens $count = ($count + (($even * ($even - 1) * ($even - 2)) / 6)) % $MOD; return $count; } // Driver Code $n = 10; echo countWays($n); // This code is contributed by anuj_67. ?>
Javascript
<script> // Javascript program for above implementation let MOD = 1000000007; // Function to count number of ways function countWays(N) { let count, odd = N / 2, even; if ((N & 1) > 0) odd = N / 2 + 1; even = N / 2; // Case 1: 2 odds and 1 even count = (((odd * (odd - 1)) / 2) * even) % MOD; // Case 2: 3 evens count = (count + ((even * (even - 1) * (even - 2)) / 6)) % MOD; return count; } // Driver code let n = 10; document.write(countWays(n)); // This code is contributed by code_hunt. </script>
Producción:
60
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Este artículo es una contribución de Sahil Chhabra . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA