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 = 2Output:3

The three ways are “*.”, “.*” and “**” where ‘*’ denotes

the chosen ball and ‘.’ denotes the ball which didn’t get chosen.

Input:N = 30000Output: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 **2 ^{N}**. But the state where no ball is chosen has to be subtracted from the answer. So, the result will be

**(2**.

^{N}– 1) % 1000000007Below is the implementation of the above approach:

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

**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.