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.55Input : 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 <bits/stdc++.h> #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
<script> // JavaScript program to find area of circle // when equation of circle give. let PI = 3.142; // Function to find the area function findArea(radius) { return PI * Math.pow(radius, 2); } // Function to return the value of radius function findradius(str) { let radius = 0; // For storing the value of radius * radius let st = "" ; // For counting the number of spaces // in the string let c = 0; // calculate the length of the let len = str.length; // getting the value of radius * radius // After = sign for (let 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 = Math.sqrt( parseInt(st)); return radius; } // Driver program // Static input for equation of circle let str = "X*X + Y*Y = 100" ; // calling the Function let radius = findradius(str); // Display the result document.write( "The area of circle" + " centered at origin is : " + findArea(radius)); // This code is contributed by susmitakundugoaldanga. </script> |
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.
Please Login to comment...