GeeksforGeeks App
Open App
Browser
Continue

# Given equation of a circle as string, find area

Given an equation of the circle X2 + Y2 = R2 whose center at origin (0, 0) and the radius is R. The task is to find area of circle.

Examples :

Input : X*X + Y*Y = 25
Output : The area of circle centered at origin  is : 78.55

Input :  X*X + Y*Y = 64
Output : The area of circle centered at origin  is : 201.088

Approach:

• Given an equation X2 + Y2 = R2 and store it into string ‘str’.
• Count length of string and store it into ‘len’.
• Start loop from 0 to len – 1 and check if str[i] == ‘=’.
• Store characters after ‘=’ into string variable st.
• Convert string ‘st’ into digits and store it into ‘radius_square’.
• Use formula Pi * R2 to find area of circle(multiply by Pi).

Below is the implementation of the above approach:

## C++

 `// C++ program to find area of circle ``// when equation of circle give.`` ` `#include ``#define PI 3.142``using` `namespace` `std;`` ` `// Function to find the area``double` `findArea(``double` `radius)``{``    ``return` `PI * ``pow``(radius, 2);``}`` ` `// Function to return the value of radius``static` `double` `findradius(string str)``{``     ` `    ``// Initialization``    ``double` `radius = 0;``     ` `    ``// For storing the value of R*R``    ``string st = ``""``;`` ` `    ``// For counting the number of``    ``// spaces in the string``    ``int` `c = 0;`` ` `    ``// calculate the length of the``    ``int` `len = str.length();`` ` `    ``// getting the value of R*R``    ``// After = sign``    ``for` `(``int` `i = 0; i < len; i++) {``        ``if` `(str[i] == ``'='``) {``            ``c = 1;``        ``}``        ``else` `if` `(c == 1 && str[i] != ``' '``) {``            ``st += str[i];``        ``}``    ``}`` ` `    ``// Converting the digits into integer``    ``// Taking square root of that number``    ``radius = (``double``)``sqrt``(stoi(st));``    ``return` `radius;``}`` ` `int` `main()``{`` ` `    ``// Static input for equation ``    ``// of circle``    ``string str = ``"X*X + Y*Y = 100"``;`` ` `    ``// calling the Function``    ``double` `radius = findradius(str);`` ` `    ``// Display the result``    ``cout << ``"The area of circle "` `<<``       ``"centered at origin is : "` `<< ``           ``findArea(radius) << endl;`` ` `    ``return` `0;``}`

## Java

 `// Java program to find area of circle ``// when equation of circle give.``import` `java.io.*;`` ` `public` `class` `GFG {`` ` `    ``static` `double` `PI = ``3.142``;``     ` `    ``// Function to find the area``    ``static` `double` `findArea(``double` `radius)``    ``{``        ``return` `PI * Math.pow(radius, ``2``);``    ``}``     ` `    ``// Function to return the value of radius``    ``static` `double` `findradius(String str)``    ``{``        ``double` `radius = ``0``;``         ` `        ``// For storing the value of radius * radius``        ``String st = ``""``;`` ` `        ``// For counting the number of spaces``        ``// in the string``        ``int` `c = ``0``;`` ` `        ``// calculate the length of the``        ``int` `len = str.length();``         ` `        ``// getting the value of radius * radius``        ``// After = sign``        ``for` `(``int` `i = ``0``; i < len; i++) {``            ``if` `(str.charAt(i) == ``'='``) {``                ``c = ``1``;``            ``}``            ``else` `if` `(c == ``1` `&& str.charAt(i) != ``' '``)``            ``{``                ``st = st + str.charAt(i);``            ``}``        ``}`` ` `        ``// Converting the digits into integer``        ``// Taking square root of that number``        ``if` `(c == ``1``)``            ``radius = (``double``)Math.sqrt(``                            ``Integer.parseInt(st));``        ``return` `radius;``    ``}`` ` `    ``public` `static` `void` `main(String[] args)``    ``{`` ` `        ``// Static input for equation of circle``        ``String str = ``"X*X + Y*Y = 100"``;`` ` `        ``// calling the Function``        ``double` `radius = findradius(str);`` ` `        ``// Display the result``        ``System.out.println(``"The area of circle"``                  ``+ ``" centered at origin is : "``                              ``+ findArea(radius));``    ``}``}`

## Python3

 `# python program to find area of circle ``# when equation of circle give.`` ` `import` `math`` ` `# Function to find the area``def` `findArea(radius):``     ` `    ``return` `math.pi ``*` `pow``(radius, ``2``)`` ` `# Function to return the value of radius``def` `findradius(``str``):``     ` `    ``#Initialization``    ``radius ``=` `0``     ` `    ``# For storing the value of R*R``    ``st ``=` `""`` ` `    ``# For counting the number of``    ``# spaces in the string``    ``c ``=` `0`` ` `    ``# calculate the length of the``    ``Len` `=` `len``(``str``)`` ` `    ``# getting the value of R*R``    ``# After = sign``    ``for` `i ``in` `range``(``0``, ``Len``):``        ``if` `(``str``[i] ``=``=` `'='``):``            ``c ``=` `1``        ``elif` `(c ``=``=` `1` `and` `str``[i] !``=` `' '``):``            ``st ``=` `st ``+` `str``[i]``         ` `    ``# Converting the digits into integer``    ``# Taking square root of that number``    ``radius ``=` `float``(math.sqrt(``float``(st)))``    ``return` `radius`` ` `# Static input for equation ``# of circle``str` `=` `"X*X + Y*Y = 100"`` ` `# calling the Function``radius ``=` `findradius(``str``)`` ` `# Display the result``print``( ``"The area of circle "` `,``"centered at origin is : "` `,``    ``(findArea(radius)))`` ` ` ` `# This code is contributed by Sam007.`

## C#

 `// C# program to find area of circle ``// when equation of circle give.``using` `System;`` ` `class` `GFG``{``    ``// Function to find the area``    ``static` `double` `findArea(``double` `radius)``    ``{``        ``return` `Math.PI * Math.Pow(radius, 2);``    ``}``     ` `    ``// Function to return the value of radius``    ``static` `double` `findradius(``string` `str)``    ``{``        ``double` `radius = 0;``         ` `        ``// For storing the value``        ``// of radius * radius``        ``String st = ``""``;`` ` `        ``// For counting the number ``        ``// of spaces in the string``        ``int` `c = 0;`` ` `        ``// calculate the length of the``        ``int` `len = str.Length;``         ` `        ``// getting the value of radius * radius``        ``// After = sign``        ``for` `(``int` `i = 0; i < len; i++) ``        ``{``            ``if` `(str[i] == ``'='``) ``            ``{``                ``c = 1;``            ``}``            ``else` `if` `(c == 1 && str[i] != ``' '``)``            ``{``                ``st = st + str[i];``            ``}``        ``}`` ` `        ``// Converting the digits into integer``        ``// Taking square root of that number``        ``if` `(c == 1)``            ``radius = (``double``)Math.Sqrt(``                        ``int``.Parse(st));``        ``return` `radius;``    ``}`` ` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``// Static input for equation of circle``        ``string` `str = ``"X*X + Y*Y = 100"``;`` ` `        ``// calling the Function``        ``double` `radius = findradius(str);`` ` `        ``// Display the result``        ``Console.WriteLine(``"The area of circle"` `+``                          ``" centered at origin is : "` `+``                          ``System.Math.Round(findArea(radius),1)); ``    ``}``}`` ` `// This code is contributed by Sam007`

## Javascript

 ``

Output:

`The area of circle centered at origin is : 314.2`

Time complexity: O(n), where n is the length of the given string.
Auxiliary Space: O(n), for storing the value of R2 in string str.

My Personal Notes arrow_drop_up