# 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)

My Personal Notes arrow_drop_up