# Ways to choose balls such that at least one ball is chosen

Last Updated : 03 Mar, 2022

Given an integer N, the task is to find the ways to choose some balls out of the given N balls such that at least one ball is chosen. Since the value can be large so print the value modulo 1000000007.
Example:

Input: N = 2
Output:
The three ways are “*.”, “.*” and “**” where ‘*’ denotes
the chosen ball and ‘.’ denotes the ball which didn’t get chosen.
Input: N = 30000
Output: 165890098

Approach: There are N balls and each ball can either be chosen or not chosen. Total number of different configurations is 2 * 2 * 2 * … * N. We can write this as 2N. But the state where no ball is chosen has to be subtracted from the answer. So, the result will be (2N – 1) % 1000000007.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach` `#include ` `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

 ``

Output:

`7`

Time Complexity : O(n)
Auxiliary Space : O(1)