给定两个表示两个圆的半径的整数r1和r2 ,任务是找到面积等于两个具有给定半径的圆的面积之和的圆的半径。
例子:
Input:
r1 = 8
r2 = 6
Output:
10
Explanation:
Area of circle with radius 8 = 201.061929
Area of a circle with radius 6 = 113.097335
Area of a circle with radius 10 = 314.159265
Input:
r1 = 2
r2 = 2
Output:
2.82843
方法:请按照以下步骤解决问题:
- 计算第一个圆的面积为a1 = 3.14 * r1 * r1 。
- 计算第二个圆的面积为a2 = 3.14 * r2 * r2 。
- 因此,第三圆的面积为a1 + a2 。
- 第三个圆的半径为sqrt(a3 / 3.14)
以下是以下方法的实现。
C++14
// C++ implementation of
// the above approach
#include
using namespace std;
// Function to calculate radius of the circle
// having area equal to sum of the area of
// two circles with given radii
double findRadius(double r1, double r2)
{
double a1, a2, a3, r3;
// Area of first circle
a1 = 3.14 * r1 * r1;
// Area of second circle
a2 = 3.14 * r2 * r2;
// Area of third circle
a3 = a1 + a2;
// Radius of third circle
r3 = sqrt(a3 / 3.14);
return r3;
}
// Driver Code
int main()
{
// Given radius
double r1 = 8, r2 = 6;
// Prints the radius of
// the required circle
cout << findRadius(r1, r2);
return 0;
}
Java
// Java program to implement
// the above approach
import java.util.*;
class GFG
{
// Function to calculate radius of the circle
// having area equal to sum of the area of
// two circles with given radii
static double findRadius(double r1, double r2)
{
double a1, a2, a3, r3;
// Area of first circle
a1 = 3.14 * r1 * r1;
// Area of second circle
a2 = 3.14 * r2 * r2;
// Area of third circle
a3 = a1 + a2;
// Radius of third circle
r3 = Math.sqrt(a3 / 3.14);
return r3;
}
// Driver code
public static void main(String[] args)
{
// Given radius
double r1 = 8, r2 = 6;
// Prints the radius of
// the required circle
System.out.println((int)findRadius(r1, r2));
}
}
// This code is contributed by code_hunt.
Python3
# Python program to implement
# the above approach
# Function to calculate radius of the circle
# having area equal to sum of the area of
# two circles with given radii
def findRadius(r1, r2):
a1, a2, a3, r3 = 0, 0, 0, 0;
# Area of first circle
a1 = 3.14 * r1 * r1;
# Area of second circle
a2 = 3.14 * r2 * r2;
# Area of third circle
a3 = a1 + a2;
# Radius of third circle
r3 = ((a3 / 3.14)**(1/2));
return r3;
# Driver code
if __name__ == '__main__':
# Given radius
r1 = 8; r2 = 6;
# Prints the radius of
# the required circle
print(int(findRadius(r1, r2)));
# This code is contributed by 29AjayKumar
C#
// C# program to implement
// the above approach
using System;
class GFG
{
// Function to calculate radius of the circle
// having area equal to sum of the area of
// two circles with given radii
static double findRadius(double r1, double r2)
{
double a1, a2, a3, r3;
// Area of first circle
a1 = 3.14 * r1 * r1;
// Area of second circle
a2 = 3.14 * r2 * r2;
// Area of third circle
a3 = a1 + a2;
// Radius of third circle
r3 = Math.Sqrt(a3 / 3.14);
return r3;
}
// Driver code
static void Main()
{
// Given radius
double r1 = 8, r2 = 6;
// Prints the radius of
// the required circle
Console.WriteLine((int)findRadius(r1, r2));
}
}
// This code is contributed by susmitakundugoaldanga
输出:
10
时间复杂度:O(1)
空间复杂度: O(1)