Dado un número entero N , la tarea es encontrar las formas de elegir algunas bolas de las N bolas dadas de modo que se elija al menos una bola. Dado que el valor puede ser grande, imprima el valor módulo 1000000007 .
Ejemplo:
Entrada: N = 2
Salida: 3
Las tres formas son “*.”, “.*” y “**” donde ‘*’ denota
la bola elegida y ‘.’ denota la pelota que no fue elegida.
Entrada: N = 30000
Salida: 165890098
Aproximación: Hay N bolas y cada bola puede elegirse o no elegirse. El número total de configuraciones diferentes es 2 * 2 * 2 * … * N . Podemos escribir esto como 2 N . Pero el estado en el que no se elige ninguna bola debe restarse de la respuesta. Entonces, el resultado será (2 N – 1) % 1000000007 .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; const int MOD = 1000000007; // Function to return the count of // ways to choose the balls int countWays(int n) { // Calculate (2^n) % MOD int ans = 1; for (int i = 0; i < n; i++) { ans *= 2; ans %= MOD; } // Subtract the only where // no ball was chosen return ((ans - 1 + MOD) % MOD); } // Driver code int main() { int n = 3; cout << countWays(n); return 0; }
Java
// Java implementation of the approach class GFG { static int MOD = 1000000007; // Function to return the count of // ways to choose the balls static int countWays(int n) { // Calculate (2^n) % MOD int ans = 1; for (int i = 0; i < n; i++) { ans *= 2; ans %= MOD; } // Subtract the only where // no ball was chosen return ((ans - 1 + MOD) % MOD); } // Driver code public static void main(String[] args) { int n = 3; System.out.println(countWays(n)); } } // This code is contributed by Rajput-Ji
Python3
# Python3 implementation of the approach MOD = 1000000007 # Function to return the count of # ways to choose the balls def countWays(n): # Return ((2 ^ n)-1) % MOD return (((2**n) - 1) % MOD) # Driver code n = 3 print(countWays(n))
C#
// C# implementation of the approach using System; class GFG { static int MOD = 1000000007; // Function to return the count of // ways to choose the balls static int countWays(int n) { // Calculate (2^n) % MOD int ans = 1; for (int i = 0; i < n; i++) { ans *= 2; ans %= MOD; } // Subtract the only where // no ball was chosen return ((ans - 1 + MOD) % MOD); } // Driver code public static void Main(String[] args) { int n = 3; Console.WriteLine(countWays(n)); } } // This code is contributed by Rajput-Ji
Javascript
<script> // javascript implementation of the approach MOD = 1000000007; // Function to return the count of // ways to choose the balls function countWays(n) { // Calculate (2^n) % MOD var ans = 1; for (i = 0; i < n; i++) { ans *= 2; ans %= MOD; } // Subtract the only where // no ball was chosen return ((ans - 1 + MOD) % MOD); } // Driver code var n = 3; document.write(countWays(n)); // This code contributed by gauravrajput1 </script>
7
Tiempo Complejidad : O(n)
Espacio Auxiliar : O(1)