Given that person **A** takes **a** days to do a certain piece of work while person **B** takes **b** days to do the same work. If **A** and **B** started the work together and **n** days before the completion of work, **A** leaves the work. Find the total number of days taken to complete work.

**Examples:**

Input:a = 10, b = 20, n = 5Output:10

Input:a = 5, b = 15, n = 3Output:6

**Approach:** Let **D** be the total number of days to complete the work. **A** and **B** work together for **D – n** days. So,

(D – n) * (1/a + 1/b) + (n) * (1/b) = 1

D * (1/a + 1/b) – (n/a) – (n/b) + (n/b) = 1

D * (1/a + 1/b) = (n + a) / aD = b * (n + a) / (a + b)

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to return the` `// number of days required` `int` `numberOfDays(` `int` `a, ` `int` `b, ` `int` `n)` `{` ` ` `int` `Days = b * (n + a) / (a + b);` ` ` `return` `Days;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `a = 10, b = 20, n = 5;` ` ` `cout << numberOfDays(a, b, n);` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `import` `java.io.*;` `class` `GFG` `{` ` ` `// Function to return the` `// number of days required` `static` `int` `numberOfDays(` `int` `a, ` `int` `b, ` `int` `n)` `{` ` ` `int` `Days = b * (n + a) / (a + b);` ` ` `return` `Days;` `}` `// Driver code` `public` `static` `void` `main (String[] args)` `{` ` ` `int` `a = ` `10` `, b = ` `20` `, n = ` `5` `;` ` ` `System.out.println (numberOfDays(a, b, n));` `}` `}` `// This code is contributed by jit_t` |

## Python3

`# Python3 implementation of the approach` ` ` `# Function to return the` `# number of days required` `def` `numberOfDays(a, b, n):` ` ` `Days ` `=` `b ` `*` `(n ` `+` `a) ` `/` `/` `(a ` `+` `b)` ` ` ` ` `return` `Days` `# Driver code` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `a ` `=` `10` ` ` `b ` `=` `20` ` ` `n ` `=` `5` ` ` ` ` `print` `(numberOfDays(a, b, n))` `# This code is contributed by rrrtnx` |

## C#

`// C# implementation of the approach` `using` `System;` `class` `GFG` `{` ` ` ` ` `// Function to return the` ` ` `// number of days required` ` ` `static` `int` `numberOfDays(` `int` `a, ` `int` `b, ` `int` `n)` ` ` `{` ` ` `int` `Days = b * (n + a) / (a + b);` ` ` ` ` `return` `Days;` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `Main ()` ` ` `{` ` ` ` ` `int` `a = 10, b = 20, n = 5;` ` ` `Console.WriteLine(numberOfDays(a, b, n));` ` ` ` ` `}` `}` `// This code is contributed by AnkitRai01` |

## Javascript

`<script>` `// javascript implementation of the approach` ` ` `// Function to return the` ` ` `// number of days required` ` ` `function` `numberOfDays(a , b , n)` ` ` `{` ` ` `var` `Days = b * (n + a) / (a + b);` ` ` `return` `Days;` ` ` `}` ` ` `// Driver code` ` ` `var` `a = 10, b = 20, n = 5;` ` ` `document.write(numberOfDays(a, b, n));` `// This code is contributed by Rajput-Ji` `</script>` |

**Output:**

10

**Time Complexity:** O(1 )

**Auxiliary Space:** O(1)

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. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend live classes with industry experts, please refer **Geeks Classes Live**