Related Articles
Ways to choose balls such that at least one ball is chosen
• Last Updated : 10 Sep, 2019

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: 3
The three ways are “*.”, “.*” and “**” where ‘*’ denotes
the chosen ball and ‘.’ denotes the ball which didn’t get chosen.

Input: N = 30000
Output: 165890098

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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`
Output:
```7
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up