Given are two circles, with given radii, which intersect each other and have a common chord. The length of the common chord is given. The task is to find the distance between the centres of the two circles.

**Examples:**

Input:r1 = 24, r2 = 37, x = 40Output:44Input:r1 = 14, r2 = 7, x = 10Output:17

**Approach**:

- let the length of common chord
**AB**=**x** - Let the radius of the circle with centre
**O**is**OA**=**r2** - Radius of circle with centre
**P**is**AP**=**r1** - From the figure,
**OP**is perpendicular**AB**

**AC = CB**

**AC = x/2**(Since AB = x) - In triangle
**ACP**,

**AP^2 = PC^2+ AC^2**[By Pythagoras theorem]

**r1^2 = PC^2 + (x/2)^2**

**PC^2 = r1^2 – x^2/4** - Consider triangle
**ACO**

**r2^2 = OC^2+ AC^2**[By Pythagoras theorem]

**r2^2 = OC^2+ (x/2)^2**

**OC^2 = r2^2 – x^2/4** - From the figure,
**OP = OC + PC**

**OP = √( r1^2 – x^2/4 ) + √(r2^2 – x^2/4)**

Distance between the centres = sqrt((radius of one circle)^2 – (half of the length of the common chord )^2) + sqrt((radius of the second circle)^2 – (half of the length of the common chord )^2)

Below is the implementation of the above approach:

## C++

`// C++ program to find ` `// the distance between centers ` `// of two intersecting circles ` `// if the radii and common chord length is given ` ` ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `void` `distcenter(` `int` `r1, ` `int` `r2, ` `int` `x) ` `{ ` ` ` `int` `z = ` `sqrt` `((r1 * r1) ` ` ` `- (x / 2 * x / 2)) ` ` ` `+ ` `sqrt` `((r2 * r2) ` ` ` `- (x / 2 * x / 2)); ` ` ` ` ` `cout << ` `"distance between the"` ` ` `<< ` `" centers is "` ` ` `<< z << endl; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `r1 = 24, r2 = 37, x = 40; ` ` ` `distcenter(r1, r2, x); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to find ` `// the distance between centers ` `// of two intersecting circles ` `// if the radii and common chord length is given ` `import` `java.lang.Math; ` `import` `java.io.*; ` ` ` `class` `GFG { ` ` ` `static` `double` `distcenter(` `int` `r1, ` `int` `r2, ` `int` `x) ` `{ ` ` ` `double` `z = (Math.sqrt((r1 * r1) ` ` ` `- (x / ` `2` `* x / ` `2` `))) ` ` ` `+ (Math.sqrt((r2 * r2) ` ` ` `- (x / ` `2` `* x / ` `2` `))); ` ` ` ` ` `System.out.println (` `"distance between the"` `+ ` ` ` `" centers is "` `+ (` `int` `)z ); ` ` ` `return` `0` `; ` `} ` ` ` `// Driver code ` `public` `static` `void` `main (String[] args) ` `{ ` ` ` `int` `r1 = ` `24` `, r2 = ` `37` `, x = ` `40` `; ` ` ` `distcenter(r1, r2, x); ` `} ` `} ` ` ` `// This code is contributed by jit_t. ` |

*chevron_right*

*filter_none*

## Python3

` ` `# Python program to find ` `# the distance between centers ` `# of two intersecting circles ` `# if the radii and common chord length is given ` ` ` `def` `distcenter(r1, r2, x): ` ` ` `z ` `=` `(((r1 ` `*` `r1) ` `-` `(x ` `/` `2` `*` `x ` `/` `2` `))` `*` `*` `(` `1` `/` `2` `)) ` `+` `\ ` ` ` `(((r2 ` `*` `r2)` `-` `(x ` `/` `2` `*` `x ` `/` `2` `))` `*` `*` `(` `1` `/` `2` `)); ` ` ` ` ` `print` `(` `"distance between thecenters is "` `,end` `=` `""); ` ` ` `print` `(` `int` `(z)); ` ` ` `# Driver code ` `r1 ` `=` `24` `; r2 ` `=` `37` `; x ` `=` `40` `; ` `distcenter(r1, r2, x); ` ` ` `# This code has been contributed by 29AjayKumar ` |

*chevron_right*

*filter_none*

## C#

`// C# program to find ` `// the distance between centers ` `// of two intersecting circles ` `// if the radii and common chord length is given ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` `static` `double` `distcenter(` `int` `r1, ` `int` `r2, ` `int` `x) ` `{ ` ` ` `double` `z = (Math.Sqrt((r1 * r1) ` ` ` `- (x / 2 * x / 2))) ` ` ` `+ (Math.Sqrt((r2 * r2) ` ` ` `- (x / 2 * x / 2))); ` ` ` ` ` `Console.WriteLine(` `"distance between the"` `+ ` ` ` `" centers is "` `+ (` `int` `)z ); ` ` ` `return` `0; ` `} ` ` ` `// Driver code ` `static` `public` `void` `Main () ` `{ ` ` ` `int` `r1 = 24, r2 = 37, x = 40; ` ` ` `distcenter(r1, r2, x); ` `} ` `} ` ` ` `// This code is contributed by jit_t ` |

*chevron_right*

*filter_none*

**Output:**

distance between the centers is 44

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.